diff --git a/README.md b/README.md index 8380be9..704ba4e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ A companion CLI tool for [typedoc-plugin-versions](https://citkane.github.io/typ [![npm package version](https://img.shields.io/npm/v/typedoc-plugin-versions-cli.svg?logo=npm&label&labelColor=222&style=flat-square)](https://npmjs.org/package/typedoc-plugin-versions-cli "View typedoc-plugin-versions-cli on npm") [![npm package downloads](https://img.shields.io/npm/dw/typedoc-plugin-versions-cli.svg?logo=npm&labelColor=222&style=flat-square)](https://npmjs.org/package/typedoc-plugin-versions-cli "View typedoc-plugin-versions-cli on npm") [![typedocs](https://img.shields.io/badge/docs-informational.svg?logo=typescript&labelColor=222&style=flat-square)](https://toebeann.github.io/typedoc-plugin-versions-cli "Read the documentation on Github Pages") [![coverage](https://img.shields.io/codecov/c/github/toebeann/typedoc-plugin-versions-cli.svg?logo=codecov&labelColor=222&style=flat-square)](https://codecov.io/gh/toebeann/typedoc-plugin-versions-cli "View code coverage on Codecov") [![code quality](https://img.shields.io/codefactor/grade/github/toebeann/typedoc-plugin-versions-cli.svg?logo=codefactor&labelColor=222&style=flat-square)](https://www.codefactor.io/repository/github/toebeann/typedoc-plugin-versions-cli "View code quality on CodeFactor") [![license](https://img.shields.io/github/license/toebeann/typedoc-plugin-versions-cli.svg?logo=open-source-initiative&logoColor=3DA639&color=informational&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/blob/main/LICENSE "View the license on GitHub") -[![npm test](https://img.shields.io/github/workflow/status/toebeann/typedoc-plugin-versions-cli/npm%20test.svg?logo=github&logoColor=aaa&label=npm%20test&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/npm-test.yml "View npm test on GitHub Actions") [![publish code coverage](https://img.shields.io/github/workflow/status/toebeann/typedoc-plugin-versions-cli/publish%20code%20coverage.svg?logo=github&logoColor=aaa&label=publish%20code%20coverage&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/publish-code-coverage.yml "View publish code coverage on GitHub Actions") [![publish package](https://img.shields.io/github/workflow/status/toebeann/typedoc-plugin-versions-cli/publish%20package.svg?logo=github&logoColor=aaa&label=publish%20package&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/publish-package.yml "View publish package on GitHub Actions") [![publish docs](https://img.shields.io/github/workflow/status/toebeann/typedoc-plugin-versions-cli/publish%20docs.svg?logo=github&logoColor=aaa&label=publish%20docs&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/publish-docs.yml "View publish docs on GitHub Actions") +[![npm test](https://img.shields.io/github/actions/workflow/status/toebeann/typedoc-plugin-versions-cli/npm-test.yml?branch=main&logo=github&logoColor=aaa&label=npm%20test&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/npm-test.yml "View npm test on GitHub Actions") [![publish code coverage](https://img.shields.io/github/actions/workflow/status/toebeann/typedoc-plugin-versions-cli/publish-code-coverage.yml?branch=main&logo=github&logoColor=aaa&label=publish%20code%20coverage&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/publish-code-coverage.yml "View publish code coverage on GitHub Actions") [![publish package](https://img.shields.io/github/actions/workflow/status/toebeann/typedoc-plugin-versions-cli/publish-package.yml?branch=main&logo=github&logoColor=aaa&label=publish%20package&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/publish-package.yml "View publish package on GitHub Actions") [![publish docs](https://img.shields.io/github/actions/workflow/status/toebeann/typedoc-plugin-versions-cli/publish-docs.yml?branch=main&logo=github&logoColor=aaa&label=publish%20docs&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli/actions/workflows/publish-docs.yml "View publish docs on GitHub Actions") [![github](https://img.shields.io/badge/source-informational.svg?logo=github&labelColor=222&style=flat-square)](https://github.com/toebeann/typedoc-plugin-versions-cli "View typedoc-plugin-versions-cli on GitHub") [![twitter](https://img.shields.io/badge/follow-blue.svg?logo=twitter&label&labelColor=222&style=flat-square)](https://twitter.com/toebean__ "Follow @toebean__ on Twitter") [![GitHub Sponsors donation button](https://img.shields.io/badge/sponsor-e5b.svg?logo=github%20sponsors&labelColor=222&style=flat-square)](https://github.com/sponsors/toebeann "Sponsor typedoc-plugin-versions-cli on GitHub") [![PayPal donation button](https://img.shields.io/badge/donate-e5b.svg?logo=paypal&labelColor=222&style=flat-square)](https://paypal.me/tobeyblaber "Donate to typedoc-plugin-versions-cli with PayPal") diff --git a/jest.config.json b/jest.config.json index 3ac468c..be34fee 100644 --- a/jest.config.json +++ b/jest.config.json @@ -1,5 +1,7 @@ { "preset": "ts-jest", + "injectGlobals": false, + "restoreMocks": true, "testEnvironment": "node", "coverageReporters": ["html", "text", "cobertura", "json", "lcovonly"], "coverageThreshold": { diff --git a/package-lock.json b/package-lock.json index b594e1f..0ba0097 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "@typescript-eslint/parser": "^5.38.0", "eslint": "^8.23.1", "eslint-config-prettier": "^8.5.0", - "fs-extra": "^10.1.0", + "fs-extra": "^11.1.0", "jest": "^29.0.3", "prettier": "^2.7.1", "ts-jest": "^29.0.1", @@ -622,15 +622,15 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.4.0", - "globals": "^13.15.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -645,14 +645,14 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", - "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" @@ -786,16 +786,16 @@ } }, "node_modules/@jest/console": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.2.1.tgz", - "integrity": "sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0" }, "engines": { @@ -873,16 +873,16 @@ } }, "node_modules/@jest/core": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.2.2.tgz", - "integrity": "sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", "dev": true, "dependencies": { - "@jest/console": "^29.2.1", - "@jest/reporters": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", @@ -890,20 +890,20 @@ "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.2.0", - "jest-config": "^29.2.2", - "jest-haste-map": "^29.2.1", - "jest-message-util": "^29.2.1", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.2.2", - "jest-resolve-dependencies": "^29.2.2", - "jest-runner": "^29.2.2", - "jest-runtime": "^29.2.2", - "jest-snapshot": "^29.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", - "jest-watcher": "^29.2.2", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", "micromatch": "^4.0.4", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -990,37 +990,37 @@ } }, "node_modules/@jest/environment": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.2.2.tgz", - "integrity": "sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^29.2.2" + "jest-mock": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.2.2.tgz", - "integrity": "sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", "dev": true, "dependencies": { - "expect": "^29.2.2", - "jest-snapshot": "^29.2.2" + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.2.2.tgz", - "integrity": "sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", "dev": true, "dependencies": { "jest-get-type": "^29.2.0" @@ -1030,48 +1030,48 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.2.2.tgz", - "integrity": "sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^29.2.1", - "jest-mock": "^29.2.2", - "jest-util": "^29.2.1" + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.2.2.tgz", - "integrity": "sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", "dev": true, "dependencies": { - "@jest/environment": "^29.2.2", - "@jest/expect": "^29.2.2", - "@jest/types": "^29.2.1", - "jest-mock": "^29.2.2" + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.2.2.tgz", - "integrity": "sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.2.1", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@jridgewell/trace-mapping": "^0.3.15", "@types/node": "*", "chalk": "^4.0.0", @@ -1084,9 +1084,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1", - "jest-worker": "^29.2.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -1201,13 +1201,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.2.1.tgz", - "integrity": "sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", "dev": true, "dependencies": { - "@jest/console": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -1216,14 +1216,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz", - "integrity": "sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", "dev": true, "dependencies": { - "@jest/test-result": "^29.2.1", + "@jest/test-result": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", + "jest-haste-map": "^29.3.1", "slash": "^3.0.0" }, "engines": { @@ -1231,22 +1231,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.2.2.tgz", - "integrity": "sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", + "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", + "jest-haste-map": "^29.3.1", "jest-regex-util": "^29.2.0", - "jest-util": "^29.2.1", + "jest-util": "^29.3.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -1305,6 +1305,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1327,9 +1333,9 @@ } }, "node_modules/@jest/types": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", - "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "dependencies": { "@jest/schemas": "^29.0.0", @@ -1502,9 +1508,9 @@ "dev": true }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -1544,9 +1550,9 @@ "dev": true }, "node_modules/@types/async": { - "version": "3.2.15", - "resolved": "https://registry.npmjs.org/@types/async/-/async-3.2.15.tgz", - "integrity": "sha512-PAmPfzvFA31mRoqZyTVsgJMsvbynR429UTTxhmfsUCrWGh3/fxOrzqBtaTPJsn4UtzTv4Vb0+/O7CARWb69N4g==", + "version": "3.2.16", + "resolved": "https://registry.npmjs.org/@types/async/-/async-3.2.16.tgz", + "integrity": "sha512-jnlGp5Z/cAZ7JVYyLnSDuYJ+YyYm0o2yzL8Odv6ckWmGMow3j/P/wgfziybB044cXXA93lEuymJyxVR8Iz2amQ==", "dev": true }, "node_modules/@types/babel__core": { @@ -1633,9 +1639,9 @@ } }, "node_modules/@types/jest": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.0.tgz", - "integrity": "sha512-KO7bPV21d65PKwv3LLsD8Jn3E05pjNjRZvkm+YTacWhVmykAb07wW6IkZUmQAltwQafNcDUEUrMO2h3jeBSisg==", + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.5.tgz", + "integrity": "sha512-H2cSxkKgVmqNHXP7TC2L/WUorrZu8ZigyRywfVzv6EyBlxj39n4C00hjXYQWsbwqgElaj/CiAeSRmk5GoaKTgw==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -1661,12 +1667,13 @@ "dev": true }, "node_modules/@types/prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-1Mqzhzi9W5KlooNE4o0JwSXGUDeQXKldbGn9NO4tpxwZbHXYd+WcKpCksG2lbhH7U9I9LigfsdVsP2QAY0lNPA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-TwNx7qsjvRIUv/BCx583tqF5IINEVjCNqg9ofKHRlSoUHE62WBHrem4B1HGXcIrG511v29d1kJ9a/t2Esz7MIg==", "dev": true, "dependencies": { - "@types/node": "*" + "@types/node": "*", + "kleur": "^3.0.3" } }, "node_modules/@types/semver": { @@ -1682,9 +1689,9 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz", + "integrity": "sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -1697,16 +1704,17 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz", - "integrity": "sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.1.tgz", + "integrity": "sha512-r4RZ2Jl9kcQN7K/dcOT+J7NAimbiis4sSM9spvWimsBvDegMhKLA5vri2jG19PmIPbDjPeWzfUPQ2hjEzA4Nmg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/type-utils": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/scope-manager": "5.47.1", + "@typescript-eslint/type-utils": "5.47.1", + "@typescript-eslint/utils": "5.47.1", "debug": "^4.3.4", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" @@ -1729,14 +1737,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz", - "integrity": "sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.1.tgz", + "integrity": "sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.47.1", + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/typescript-estree": "5.47.1", "debug": "^4.3.4" }, "engines": { @@ -1756,13 +1764,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz", - "integrity": "sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz", + "integrity": "sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0" + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/visitor-keys": "5.47.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1773,13 +1781,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz", - "integrity": "sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.1.tgz", + "integrity": "sha512-/UKOeo8ee80A7/GJA427oIrBi/Gd4osk/3auBUg4Rn9EahFpevVV1mUK8hjyQD5lHPqX397x6CwOk5WGh1E/1w==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/typescript-estree": "5.47.1", + "@typescript-eslint/utils": "5.47.1", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -1800,9 +1808,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz", - "integrity": "sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.1.tgz", + "integrity": "sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1813,13 +1821,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz", - "integrity": "sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz", + "integrity": "sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0", + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/visitor-keys": "5.47.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1840,16 +1848,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz", - "integrity": "sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.1.tgz", + "integrity": "sha512-l90SdwqfmkuIVaREZ2ykEfCezepCLxzWMo5gVfcJsJCaT4jHT+QjgSkYhs5BMQmWqE9k3AtIfk4g211z/sTMVw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.47.1", + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/typescript-estree": "5.47.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -1866,12 +1874,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz", - "integrity": "sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz", + "integrity": "sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/types": "5.47.1", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -2014,12 +2022,12 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/babel-jest": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.2.2.tgz", - "integrity": "sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", "dev": true, "dependencies": { - "@jest/transform": "^29.2.2", + "@jest/transform": "^29.3.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.2.0", @@ -2470,9 +2478,9 @@ } }, "node_modules/diff-sequences": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz", - "integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -2551,13 +2559,13 @@ } }, "node_modules/eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", + "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -2576,7 +2584,7 @@ "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -2772,9 +2780,9 @@ } }, "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { "acorn": "^8.8.0", @@ -2894,16 +2902,16 @@ } }, "node_modules/expect": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.2.2.tgz", - "integrity": "sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.2.2", + "@jest/expect-utils": "^29.3.1", "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.2.2", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1" + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3033,9 +3041,9 @@ "dev": true }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -3043,7 +3051,7 @@ "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs.realpath": { @@ -3143,9 +3151,9 @@ } }, "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3482,15 +3490,15 @@ } }, "node_modules/jest": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.2.2.tgz", - "integrity": "sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", "dev": true, "dependencies": { - "@jest/core": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", "import-local": "^3.0.2", - "jest-cli": "^29.2.2" + "jest-cli": "^29.3.1" }, "bin": { "jest": "bin/jest.js" @@ -3521,28 +3529,28 @@ } }, "node_modules/jest-circus": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.2.2.tgz", - "integrity": "sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", "dev": true, "dependencies": { - "@jest/environment": "^29.2.2", - "@jest/expect": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.2.1", - "jest-matcher-utils": "^29.2.2", - "jest-message-util": "^29.2.1", - "jest-runtime": "^29.2.2", - "jest-snapshot": "^29.2.2", - "jest-util": "^29.2.1", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", "p-limit": "^3.1.0", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -3621,21 +3629,21 @@ } }, "node_modules/jest-cli": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.2.2.tgz", - "integrity": "sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", "dev": true, "dependencies": { - "@jest/core": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "prompts": "^2.0.1", "yargs": "^17.3.1" }, @@ -3725,31 +3733,31 @@ } }, "node_modules/jest-config": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.2.2.tgz", - "integrity": "sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.2.2", - "@jest/types": "^29.2.1", - "babel-jest": "^29.2.2", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.2.2", - "jest-environment-node": "^29.2.2", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", "jest-get-type": "^29.2.0", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.2.2", - "jest-runner": "^29.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -3840,15 +3848,15 @@ } }, "node_modules/jest-diff": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz", - "integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.2.0", + "diff-sequences": "^29.3.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3937,16 +3945,16 @@ } }, "node_modules/jest-each": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.2.1.tgz", - "integrity": "sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", - "jest-util": "^29.2.1", - "pretty-format": "^29.2.1" + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4023,17 +4031,17 @@ } }, "node_modules/jest-environment-node": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.2.2.tgz", - "integrity": "sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", "dev": true, "dependencies": { - "@jest/environment": "^29.2.2", - "@jest/fake-timers": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^29.2.2", - "jest-util": "^29.2.1" + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4049,20 +4057,20 @@ } }, "node_modules/jest-haste-map": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.2.1.tgz", - "integrity": "sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.2.0", - "jest-util": "^29.2.1", - "jest-worker": "^29.2.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -4074,28 +4082,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz", - "integrity": "sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", "dev": true, "dependencies": { "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz", - "integrity": "sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.2.1", + "jest-diff": "^29.3.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4172,18 +4180,18 @@ } }, "node_modules/jest-message-util": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.2.1.tgz", - "integrity": "sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -4262,14 +4270,14 @@ } }, "node_modules/jest-mock": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.2.2.tgz", - "integrity": "sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-util": "^29.2.1" + "jest-util": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4302,17 +4310,17 @@ } }, "node_modules/jest-resolve": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.2.2.tgz", - "integrity": "sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", + "jest-haste-map": "^29.3.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" @@ -4322,13 +4330,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz", - "integrity": "sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", "dev": true, "dependencies": { "jest-regex-util": "^29.2.0", - "jest-snapshot": "^29.2.2" + "jest-snapshot": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4405,30 +4413,30 @@ } }, "node_modules/jest-runner": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.2.2.tgz", - "integrity": "sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", "dev": true, "dependencies": { - "@jest/console": "^29.2.1", - "@jest/environment": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.2.0", - "jest-environment-node": "^29.2.2", - "jest-haste-map": "^29.2.1", - "jest-leak-detector": "^29.2.1", - "jest-message-util": "^29.2.1", - "jest-resolve": "^29.2.2", - "jest-runtime": "^29.2.2", - "jest-util": "^29.2.1", - "jest-watcher": "^29.2.2", - "jest-worker": "^29.2.1", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -4507,31 +4515,31 @@ } }, "node_modules/jest-runtime": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.2.2.tgz", - "integrity": "sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", "dev": true, "dependencies": { - "@jest/environment": "^29.2.2", - "@jest/fake-timers": "^29.2.2", - "@jest/globals": "^29.2.2", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", "@jest/source-map": "^29.2.0", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", - "jest-message-util": "^29.2.1", - "jest-mock": "^29.2.2", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.2.2", - "jest-snapshot": "^29.2.2", - "jest-util": "^29.2.1", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -4610,9 +4618,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.2.2.tgz", - "integrity": "sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -4621,23 +4629,23 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.2.2", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/babel__traverse": "^7.0.6", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.2.2", + "expect": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-diff": "^29.2.1", + "jest-diff": "^29.3.1", "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.2.1", - "jest-matcher-utils": "^29.2.2", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "natural-compare": "^1.4.0", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "semver": "^7.3.5" }, "engines": { @@ -4715,12 +4723,12 @@ } }, "node_modules/jest-util": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", - "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -4802,17 +4810,17 @@ } }, "node_modules/jest-validate": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.2.2.tgz", - "integrity": "sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", "leven": "^3.1.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4901,18 +4909,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.2.2.tgz", - "integrity": "sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", "dev": true, "dependencies": { - "@jest/test-result": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.2.1", + "jest-util": "^29.3.1", "string-length": "^4.0.1" }, "engines": { @@ -4990,13 +4998,13 @@ } }, "node_modules/jest-worker": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", - "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.2.1", + "jest-util": "^29.3.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -5232,9 +5240,9 @@ } }, "node_modules/marked": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", - "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.4.tgz", + "integrity": "sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -5304,6 +5312,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5590,9 +5604,9 @@ } }, "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -5605,9 +5619,9 @@ } }, "node_modules/pretty-format": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz", - "integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { "@jest/schemas": "^29.0.0", @@ -6206,14 +6220,14 @@ } }, "node_modules/typedoc": { - "version": "0.23.19", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.19.tgz", - "integrity": "sha512-70jPL0GQnSJtgQqI7ifOWxpTXrB3sxc4SWPPRn3K0wdx3txI6ZIT/ZYMF39dNg2Gjmql45cO+cAKXJp0TpqOVA==", + "version": "0.23.23", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.23.tgz", + "integrity": "sha512-cg1YQWj+/BU6wq74iott513U16fbrPCbyYs04PHZgvoKJIc6EY4xNobyDZh4KMfRGW8Yjv6wwIzQyoqopKOUGw==", "dev": true, "dependencies": { "lunr": "^2.3.9", - "marked": "^4.0.19", - "minimatch": "^5.1.0", + "marked": "^4.2.4", + "minimatch": "^5.1.1", "shiki": "^0.11.1" }, "bin": { @@ -6223,13 +6237,13 @@ "node": ">= 14.14" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x" } }, "node_modules/typedoc-plugin-versions": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/typedoc-plugin-versions/-/typedoc-plugin-versions-0.2.1.tgz", - "integrity": "sha512-JWNziM5ATtXa9jSnul1a8mlEfoAZX5NGekCz1rVJ/2RyAAfeHYM7LVQmTzmHPdXMfoJH56oJMgINLJ2Ri2SARQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/typedoc-plugin-versions/-/typedoc-plugin-versions-0.2.2.tgz", + "integrity": "sha512-vU6TSngCsFeJQgncyCo1raamAY5Ekk6s4QUSoW+2LNRkVTas20UFxupAgb48sFdgJqmAO4og2/+j4UYrZBZdoA==", "dev": true, "dependencies": { "fs-extra": "^10.1.0", @@ -6243,6 +6257,20 @@ "typedoc": "^0.23" } }, + "node_modules/typedoc-plugin-versions/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/typedoc/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -6253,9 +6281,9 @@ } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -6265,9 +6293,9 @@ } }, "node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -6465,9 +6493,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -6475,7 +6503,7 @@ "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" @@ -6934,15 +6962,15 @@ } }, "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.4.0", - "globals": "^13.15.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -6951,14 +6979,14 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", - "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" } }, "@humanwhocodes/module-importer": { @@ -7057,16 +7085,16 @@ "dev": true }, "@jest/console": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.2.1.tgz", - "integrity": "sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0" }, "dependencies": { @@ -7122,16 +7150,16 @@ } }, "@jest/core": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.2.2.tgz", - "integrity": "sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", "dev": true, "requires": { - "@jest/console": "^29.2.1", - "@jest/reporters": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", @@ -7139,20 +7167,20 @@ "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.2.0", - "jest-config": "^29.2.2", - "jest-haste-map": "^29.2.1", - "jest-message-util": "^29.2.1", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.2.2", - "jest-resolve-dependencies": "^29.2.2", - "jest-runner": "^29.2.2", - "jest-runtime": "^29.2.2", - "jest-snapshot": "^29.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", - "jest-watcher": "^29.2.2", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", "micromatch": "^4.0.4", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -7209,73 +7237,73 @@ } }, "@jest/environment": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.2.2.tgz", - "integrity": "sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", "dev": true, "requires": { - "@jest/fake-timers": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^29.2.2" + "jest-mock": "^29.3.1" } }, "@jest/expect": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.2.2.tgz", - "integrity": "sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", "dev": true, "requires": { - "expect": "^29.2.2", - "jest-snapshot": "^29.2.2" + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" } }, "@jest/expect-utils": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.2.2.tgz", - "integrity": "sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", "dev": true, "requires": { "jest-get-type": "^29.2.0" } }, "@jest/fake-timers": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.2.2.tgz", - "integrity": "sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^29.2.1", - "jest-mock": "^29.2.2", - "jest-util": "^29.2.1" + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" } }, "@jest/globals": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.2.2.tgz", - "integrity": "sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", "dev": true, "requires": { - "@jest/environment": "^29.2.2", - "@jest/expect": "^29.2.2", - "@jest/types": "^29.2.1", - "jest-mock": "^29.2.2" + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" } }, "@jest/reporters": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.2.2.tgz", - "integrity": "sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.2.1", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@jridgewell/trace-mapping": "^0.3.15", "@types/node": "*", "chalk": "^4.0.0", @@ -7288,9 +7316,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1", - "jest-worker": "^29.2.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -7369,46 +7397,46 @@ } }, "@jest/test-result": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.2.1.tgz", - "integrity": "sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", "dev": true, "requires": { - "@jest/console": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz", - "integrity": "sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", "dev": true, "requires": { - "@jest/test-result": "^29.2.1", + "@jest/test-result": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", + "jest-haste-map": "^29.3.1", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.2.2.tgz", - "integrity": "sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", + "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", + "jest-haste-map": "^29.3.1", "jest-regex-util": "^29.2.0", - "jest-util": "^29.2.1", + "jest-util": "^29.3.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -7449,6 +7477,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7467,9 +7501,9 @@ } }, "@jest/types": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", - "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "requires": { "@jest/schemas": "^29.0.0", @@ -7602,9 +7636,9 @@ "dev": true }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -7644,9 +7678,9 @@ "dev": true }, "@types/async": { - "version": "3.2.15", - "resolved": "https://registry.npmjs.org/@types/async/-/async-3.2.15.tgz", - "integrity": "sha512-PAmPfzvFA31mRoqZyTVsgJMsvbynR429UTTxhmfsUCrWGh3/fxOrzqBtaTPJsn4UtzTv4Vb0+/O7CARWb69N4g==", + "version": "3.2.16", + "resolved": "https://registry.npmjs.org/@types/async/-/async-3.2.16.tgz", + "integrity": "sha512-jnlGp5Z/cAZ7JVYyLnSDuYJ+YyYm0o2yzL8Odv6ckWmGMow3j/P/wgfziybB044cXXA93lEuymJyxVR8Iz2amQ==", "dev": true }, "@types/babel__core": { @@ -7733,9 +7767,9 @@ } }, "@types/jest": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.0.tgz", - "integrity": "sha512-KO7bPV21d65PKwv3LLsD8Jn3E05pjNjRZvkm+YTacWhVmykAb07wW6IkZUmQAltwQafNcDUEUrMO2h3jeBSisg==", + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.5.tgz", + "integrity": "sha512-H2cSxkKgVmqNHXP7TC2L/WUorrZu8ZigyRywfVzv6EyBlxj39n4C00hjXYQWsbwqgElaj/CiAeSRmk5GoaKTgw==", "dev": true, "requires": { "expect": "^29.0.0", @@ -7761,12 +7795,13 @@ "dev": true }, "@types/prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-1Mqzhzi9W5KlooNE4o0JwSXGUDeQXKldbGn9NO4tpxwZbHXYd+WcKpCksG2lbhH7U9I9LigfsdVsP2QAY0lNPA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-TwNx7qsjvRIUv/BCx583tqF5IINEVjCNqg9ofKHRlSoUHE62WBHrem4B1HGXcIrG511v29d1kJ9a/t2Esz7MIg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "*", + "kleur": "^3.0.3" } }, "@types/semver": { @@ -7782,9 +7817,9 @@ "dev": true }, "@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz", + "integrity": "sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -7797,69 +7832,70 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz", - "integrity": "sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.1.tgz", + "integrity": "sha512-r4RZ2Jl9kcQN7K/dcOT+J7NAimbiis4sSM9spvWimsBvDegMhKLA5vri2jG19PmIPbDjPeWzfUPQ2hjEzA4Nmg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/type-utils": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/scope-manager": "5.47.1", + "@typescript-eslint/type-utils": "5.47.1", + "@typescript-eslint/utils": "5.47.1", "debug": "^4.3.4", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/parser": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz", - "integrity": "sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.1.tgz", + "integrity": "sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.47.1", + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/typescript-estree": "5.47.1", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz", - "integrity": "sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz", + "integrity": "sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0" + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/visitor-keys": "5.47.1" } }, "@typescript-eslint/type-utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz", - "integrity": "sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.1.tgz", + "integrity": "sha512-/UKOeo8ee80A7/GJA427oIrBi/Gd4osk/3auBUg4Rn9EahFpevVV1mUK8hjyQD5lHPqX397x6CwOk5WGh1E/1w==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.41.0", - "@typescript-eslint/utils": "5.41.0", + "@typescript-eslint/typescript-estree": "5.47.1", + "@typescript-eslint/utils": "5.47.1", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz", - "integrity": "sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.1.tgz", + "integrity": "sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz", - "integrity": "sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz", + "integrity": "sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/visitor-keys": "5.41.0", + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/visitor-keys": "5.47.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7868,28 +7904,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz", - "integrity": "sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.1.tgz", + "integrity": "sha512-l90SdwqfmkuIVaREZ2ykEfCezepCLxzWMo5gVfcJsJCaT4jHT+QjgSkYhs5BMQmWqE9k3AtIfk4g211z/sTMVw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.41.0", - "@typescript-eslint/types": "5.41.0", - "@typescript-eslint/typescript-estree": "5.41.0", + "@typescript-eslint/scope-manager": "5.47.1", + "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/typescript-estree": "5.47.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz", - "integrity": "sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz", + "integrity": "sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==", "dev": true, "requires": { - "@typescript-eslint/types": "5.41.0", + "@typescript-eslint/types": "5.47.1", "eslint-visitor-keys": "^3.3.0" } }, @@ -7988,12 +8024,12 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "babel-jest": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.2.2.tgz", - "integrity": "sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", "dev": true, "requires": { - "@jest/transform": "^29.2.2", + "@jest/transform": "^29.3.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.2.0", @@ -8330,9 +8366,9 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" }, "diff-sequences": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz", - "integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", "dev": true }, "dir-glob": { @@ -8390,13 +8426,13 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", + "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -8415,7 +8451,7 @@ "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -8550,9 +8586,9 @@ "dev": true }, "espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { "acorn": "^8.8.0", @@ -8636,16 +8672,16 @@ "dev": true }, "expect": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.2.2.tgz", - "integrity": "sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", "dev": true, "requires": { - "@jest/expect-utils": "^29.2.2", + "@jest/expect-utils": "^29.3.1", "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.2.2", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1" + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" } }, "fast-deep-equal": { @@ -8753,9 +8789,9 @@ "dev": true }, "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -8829,9 +8865,9 @@ } }, "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -9079,15 +9115,15 @@ } }, "jest": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.2.2.tgz", - "integrity": "sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", "dev": true, "requires": { - "@jest/core": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", "import-local": "^3.0.2", - "jest-cli": "^29.2.2" + "jest-cli": "^29.3.1" } }, "jest-changed-files": { @@ -9101,28 +9137,28 @@ } }, "jest-circus": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.2.2.tgz", - "integrity": "sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", "dev": true, "requires": { - "@jest/environment": "^29.2.2", - "@jest/expect": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.2.1", - "jest-matcher-utils": "^29.2.2", - "jest-message-util": "^29.2.1", - "jest-runtime": "^29.2.2", - "jest-snapshot": "^29.2.2", - "jest-util": "^29.2.1", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", "p-limit": "^3.1.0", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -9179,21 +9215,21 @@ } }, "jest-cli": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.2.2.tgz", - "integrity": "sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", "dev": true, "requires": { - "@jest/core": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "prompts": "^2.0.1", "yargs": "^17.3.1" }, @@ -9250,31 +9286,31 @@ } }, "jest-config": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.2.2.tgz", - "integrity": "sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.2.2", - "@jest/types": "^29.2.1", - "babel-jest": "^29.2.2", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.2.2", - "jest-environment-node": "^29.2.2", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", "jest-get-type": "^29.2.0", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.2.2", - "jest-runner": "^29.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -9331,15 +9367,15 @@ } }, "jest-diff": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz", - "integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^29.2.0", + "diff-sequences": "^29.3.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" }, "dependencies": { "ansi-styles": { @@ -9403,16 +9439,16 @@ } }, "jest-each": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.2.1.tgz", - "integrity": "sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", - "jest-util": "^29.2.1", - "pretty-format": "^29.2.1" + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" }, "dependencies": { "ansi-styles": { @@ -9467,17 +9503,17 @@ } }, "jest-environment-node": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.2.2.tgz", - "integrity": "sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", "dev": true, "requires": { - "@jest/environment": "^29.2.2", - "@jest/fake-timers": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^29.2.2", - "jest-util": "^29.2.1" + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" } }, "jest-get-type": { @@ -9487,12 +9523,12 @@ "dev": true }, "jest-haste-map": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.2.1.tgz", - "integrity": "sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", @@ -9500,32 +9536,32 @@ "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.2.0", - "jest-util": "^29.2.1", - "jest-worker": "^29.2.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz", - "integrity": "sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", "dev": true, "requires": { "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" } }, "jest-matcher-utils": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz", - "integrity": "sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^29.2.1", + "jest-diff": "^29.3.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" }, "dependencies": { "ansi-styles": { @@ -9580,18 +9616,18 @@ } }, "jest-message-util": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.2.1.tgz", - "integrity": "sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -9648,14 +9684,14 @@ } }, "jest-mock": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.2.2.tgz", - "integrity": "sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-util": "^29.2.1" + "jest-util": "^29.3.1" } }, "jest-pnp-resolver": { @@ -9672,17 +9708,17 @@ "dev": true }, "jest-resolve": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.2.2.tgz", - "integrity": "sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", + "jest-haste-map": "^29.3.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.2.1", - "jest-validate": "^29.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" @@ -9740,40 +9776,40 @@ } }, "jest-resolve-dependencies": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz", - "integrity": "sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", "dev": true, "requires": { "jest-regex-util": "^29.2.0", - "jest-snapshot": "^29.2.2" + "jest-snapshot": "^29.3.1" } }, "jest-runner": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.2.2.tgz", - "integrity": "sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", "dev": true, "requires": { - "@jest/console": "^29.2.1", - "@jest/environment": "^29.2.2", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.2.0", - "jest-environment-node": "^29.2.2", - "jest-haste-map": "^29.2.1", - "jest-leak-detector": "^29.2.1", - "jest-message-util": "^29.2.1", - "jest-resolve": "^29.2.2", - "jest-runtime": "^29.2.2", - "jest-util": "^29.2.1", - "jest-watcher": "^29.2.2", - "jest-worker": "^29.2.1", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -9830,31 +9866,31 @@ } }, "jest-runtime": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.2.2.tgz", - "integrity": "sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", "dev": true, "requires": { - "@jest/environment": "^29.2.2", - "@jest/fake-timers": "^29.2.2", - "@jest/globals": "^29.2.2", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", "@jest/source-map": "^29.2.0", - "@jest/test-result": "^29.2.1", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.2.1", - "jest-message-util": "^29.2.1", - "jest-mock": "^29.2.2", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.2.2", - "jest-snapshot": "^29.2.2", - "jest-util": "^29.2.1", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -9911,9 +9947,9 @@ } }, "jest-snapshot": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.2.2.tgz", - "integrity": "sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", "dev": true, "requires": { "@babel/core": "^7.11.6", @@ -9922,23 +9958,23 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.2.2", - "@jest/transform": "^29.2.2", - "@jest/types": "^29.2.1", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/babel__traverse": "^7.0.6", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.2.2", + "expect": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-diff": "^29.2.1", + "jest-diff": "^29.3.1", "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.2.1", - "jest-matcher-utils": "^29.2.2", - "jest-message-util": "^29.2.1", - "jest-util": "^29.2.1", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "natural-compare": "^1.4.0", - "pretty-format": "^29.2.1", + "pretty-format": "^29.3.1", "semver": "^7.3.5" }, "dependencies": { @@ -9994,12 +10030,12 @@ } }, "jest-util": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", - "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -10059,17 +10095,17 @@ } }, "jest-validate": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.2.2.tgz", - "integrity": "sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", "leven": "^3.1.0", - "pretty-format": "^29.2.1" + "pretty-format": "^29.3.1" }, "dependencies": { "ansi-styles": { @@ -10130,18 +10166,18 @@ } }, "jest-watcher": { - "version": "29.2.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.2.2.tgz", - "integrity": "sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", "dev": true, "requires": { - "@jest/test-result": "^29.2.1", - "@jest/types": "^29.2.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.2.1", + "jest-util": "^29.3.1", "string-length": "^4.0.1" }, "dependencies": { @@ -10197,13 +10233,13 @@ } }, "jest-worker": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", - "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "requires": { "@types/node": "*", - "jest-util": "^29.2.1", + "jest-util": "^29.3.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -10387,9 +10423,9 @@ } }, "marked": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", - "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.4.tgz", + "integrity": "sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA==", "dev": true }, "merge-stream": { @@ -10441,6 +10477,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -10648,15 +10690,15 @@ "dev": true }, "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", "dev": true }, "pretty-format": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz", - "integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "requires": { "@jest/schemas": "^29.0.0", @@ -11050,14 +11092,14 @@ "dev": true }, "typedoc": { - "version": "0.23.19", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.19.tgz", - "integrity": "sha512-70jPL0GQnSJtgQqI7ifOWxpTXrB3sxc4SWPPRn3K0wdx3txI6ZIT/ZYMF39dNg2Gjmql45cO+cAKXJp0TpqOVA==", + "version": "0.23.23", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.23.tgz", + "integrity": "sha512-cg1YQWj+/BU6wq74iott513U16fbrPCbyYs04PHZgvoKJIc6EY4xNobyDZh4KMfRGW8Yjv6wwIzQyoqopKOUGw==", "dev": true, "requires": { "lunr": "^2.3.9", - "marked": "^4.0.19", - "minimatch": "^5.1.0", + "marked": "^4.2.4", + "minimatch": "^5.1.1", "shiki": "^0.11.1" }, "dependencies": { @@ -11071,9 +11113,9 @@ } }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -11082,19 +11124,32 @@ } }, "typedoc-plugin-versions": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/typedoc-plugin-versions/-/typedoc-plugin-versions-0.2.1.tgz", - "integrity": "sha512-JWNziM5ATtXa9jSnul1a8mlEfoAZX5NGekCz1rVJ/2RyAAfeHYM7LVQmTzmHPdXMfoJH56oJMgINLJ2Ri2SARQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/typedoc-plugin-versions/-/typedoc-plugin-versions-0.2.2.tgz", + "integrity": "sha512-vU6TSngCsFeJQgncyCo1raamAY5Ekk6s4QUSoW+2LNRkVTas20UFxupAgb48sFdgJqmAO4og2/+j4UYrZBZdoA==", "dev": true, "requires": { "fs-extra": "^10.1.0", "semver": "^7.3.7" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } } }, "typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true }, "universalify": { @@ -11235,9 +11290,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -11245,7 +11300,7 @@ "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { diff --git a/package.json b/package.json index 1180e72..046109d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typedoc-plugin-versions-cli", - "version": "0.1.8", + "version": "0.1.9", "description": "A companion CLI tool for typedoc-plugins-versions.", "main": "./dist/index.js", "bin": { @@ -89,7 +89,7 @@ "@typescript-eslint/parser": "^5.38.0", "eslint": "^8.23.1", "eslint-config-prettier": "^8.5.0", - "fs-extra": "^10.1.0", + "fs-extra": "^11.1.0", "jest": "^29.0.3", "prettier": "^2.7.1", "ts-jest": "^29.0.1", diff --git a/test/commands/purge.spec/coercePurgeVersionsNum.spec.ts b/test/commands/purge.spec/coercePurgeVersionsNum.spec.ts index 04138ea..63c0c32 100644 --- a/test/commands/purge.spec/coercePurgeVersionsNum.spec.ts +++ b/test/commands/purge.spec/coercePurgeVersionsNum.spec.ts @@ -1,8 +1,10 @@ +import { describe, expect, it } from '@jest/globals'; + import { coercePurgeVersionsNum } from '../../../src/commands/purge'; describe('when passing a number', () => { describe('when number is valid', () => { - test('should return the same number', () => { + it('should return the same number', () => { expect(coercePurgeVersionsNum(5)).toBe(5); expect(coercePurgeVersionsNum(0)).toBe(0); expect(coercePurgeVersionsNum(100.25)).toBe(100.25); @@ -10,7 +12,7 @@ describe('when passing a number', () => { }); describe('when number is invalid', () => { - test('should return Infinity', () => { + it('should return Infinity', () => { expect(coercePurgeVersionsNum(-1)).toBe(Infinity); expect(coercePurgeVersionsNum(-0.00001)).toBe(Infinity); expect(coercePurgeVersionsNum(Infinity)).toBe(Infinity); @@ -21,7 +23,7 @@ describe('when passing a number', () => { }); describe('when passing an array of numbers', () => { - test('should only return the last number in the array, coerced', () => { + it('should only return the last number in the array, coerced', () => { expect(coercePurgeVersionsNum([5])).toBe(5); expect(coercePurgeVersionsNum([4, 5])).toBe(5); expect(coercePurgeVersionsNum([Infinity, 5])).toBe(5); @@ -34,7 +36,7 @@ describe('when passing an array of numbers', () => { }); describe('when passing an empty array', () => { - test('should return Infinity', () => { + it('should return Infinity', () => { expect(coercePurgeVersionsNum([])).toBe(Infinity); }); }); diff --git a/test/commands/purge.spec/getMajorVersionsToPurge.spec.ts b/test/commands/purge.spec/getMajorVersionsToPurge.spec.ts index b34f50b..c849cc9 100644 --- a/test/commands/purge.spec/getMajorVersionsToPurge.spec.ts +++ b/test/commands/purge.spec/getMajorVersionsToPurge.spec.ts @@ -1,7 +1,9 @@ +import { describe, expect, it } from '@jest/globals'; + import { getMajorVersionsToPurge } from '../../../src/commands/purge'; describe('when versions = []', () => { - test('should return []', () => { + it('should return []', () => { expect(getMajorVersionsToPurge([], 0)).toEqual([]); expect(getMajorVersionsToPurge([], 5)).toEqual([]); }); @@ -13,7 +15,7 @@ describe('when versions = [ "v2.0.0", "v1.0.0", "v0.1.0" ]', () => { describe('when number = 0', () => { const number = 0; - test('should return [ "v2.0.0", "v1.0.0", "v0.1.0" ]', () => { + it('should return [ "v2.0.0", "v1.0.0", "v0.1.0" ]', () => { expect( getMajorVersionsToPurge(versions, number, { includePrerelease: true, @@ -25,7 +27,7 @@ describe('when versions = [ "v2.0.0", "v1.0.0", "v0.1.0" ]', () => { describe('when number = 1', () => { const number = 1; - test('should return [ "v1.0.0", "v0.1.0" ]', () => { + it('should return [ "v1.0.0", "v0.1.0" ]', () => { expect( getMajorVersionsToPurge(versions, number, { includePrerelease: true, @@ -37,7 +39,7 @@ describe('when versions = [ "v2.0.0", "v1.0.0", "v0.1.0" ]', () => { describe('when number = 2', () => { const number = 2; - test('should return [ "v0.1.0" ]', () => { + it('should return [ "v0.1.0" ]', () => { expect( getMajorVersionsToPurge(versions, number, { includePrerelease: true, @@ -49,7 +51,7 @@ describe('when versions = [ "v2.0.0", "v1.0.0", "v0.1.0" ]', () => { describe('when number >= 3', () => { const number = 3; - test('should return []', () => { + it('should return []', () => { expect( getMajorVersionsToPurge(versions, number, { includePrerelease: true, diff --git a/test/commands/purge.spec/getMinorVersionsToPurge.spec.ts b/test/commands/purge.spec/getMinorVersionsToPurge.spec.ts index 8a7f932..5dafb40 100644 --- a/test/commands/purge.spec/getMinorVersionsToPurge.spec.ts +++ b/test/commands/purge.spec/getMinorVersionsToPurge.spec.ts @@ -1,7 +1,9 @@ +import { describe, expect, it } from '@jest/globals'; + import { getMinorVersionsToPurge } from '../../../src/commands/purge'; describe('when versions = []', () => { - test('should return []', () => { + it('should return []', () => { expect(getMinorVersionsToPurge([], 0)).toEqual([]); expect(getMinorVersionsToPurge([], 5)).toEqual([]); }); @@ -20,7 +22,7 @@ describe('when versions = [ "v2.1.0", "v2.0.0", "v1.2.0", "v1.1.0", "v1.0.0", "v describe('when number = 0', () => { const number = 0; - test('should return [ "v2.1.0", "v2.0.0", "v1.2.0", "v1.1.0", "v1.0.0", "v0.1.0" ]', () => { + it('should return [ "v2.1.0", "v2.0.0", "v1.2.0", "v1.1.0", "v1.0.0", "v0.1.0" ]', () => { expect( getMinorVersionsToPurge(versions, number, { includePrerelease: true, @@ -39,7 +41,7 @@ describe('when versions = [ "v2.1.0", "v2.0.0", "v1.2.0", "v1.1.0", "v1.0.0", "v describe('when number = 1', () => { const number = 1; - test('should return [ "v2.0.0", "v1.1.0", "v1.0.0" ]', () => { + it('should return [ "v2.0.0", "v1.1.0", "v1.0.0" ]', () => { expect( getMinorVersionsToPurge(versions, number, { includePrerelease: true, @@ -51,7 +53,7 @@ describe('when versions = [ "v2.1.0", "v2.0.0", "v1.2.0", "v1.1.0", "v1.0.0", "v describe('when number = 2', () => { const number = 2; - test('should return [ "v1.0.0" ]', () => { + it('should return [ "v1.0.0" ]', () => { expect( getMinorVersionsToPurge(versions, number, { includePrerelease: true, @@ -63,7 +65,7 @@ describe('when versions = [ "v2.1.0", "v2.0.0", "v1.2.0", "v1.1.0", "v1.0.0", "v describe('when number >= 3', () => { const number = 3; - test('should return []', () => { + it('should return []', () => { expect( getMinorVersionsToPurge(versions, number, { includePrerelease: true, diff --git a/test/commands/purge.spec/getPatchVersionsToPurge.spec.ts b/test/commands/purge.spec/getPatchVersionsToPurge.spec.ts index d8fe226..6981cb6 100644 --- a/test/commands/purge.spec/getPatchVersionsToPurge.spec.ts +++ b/test/commands/purge.spec/getPatchVersionsToPurge.spec.ts @@ -1,7 +1,9 @@ +import { describe, expect, it } from '@jest/globals'; + import { getPatchVersionsToPurge } from '../../../src/commands/purge'; describe('when versions = []', () => { - test('should return []', () => { + it('should return []', () => { expect(getPatchVersionsToPurge([], 0)).toEqual([]); expect(getPatchVersionsToPurge([], 5)).toEqual([]); }); @@ -23,7 +25,7 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v1.2.2", "v1.2.1", "v describe('when number = 0', () => { const number = 0; - test('should return [ "v2.1.0", "v2.0.1", "v2.0.0", "v1.2.2", "v1.2.1", "v1.2.0", "v1.1.0", "v1.0.0", "v0.1.0" ]', () => { + it('should return [ "v2.1.0", "v2.0.1", "v2.0.0", "v1.2.2", "v1.2.1", "v1.2.0", "v1.1.0", "v1.0.0", "v0.1.0" ]', () => { expect( getPatchVersionsToPurge(versions, number, { includePrerelease: true, @@ -45,7 +47,7 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v1.2.2", "v1.2.1", "v describe('when number = 1', () => { const number = 1; - test('should return [ "v2.0.0", "v1.2.1", "v1.2.0" ]', () => { + it('should return [ "v2.0.0", "v1.2.1", "v1.2.0" ]', () => { expect( getPatchVersionsToPurge(versions, number, { includePrerelease: true, @@ -57,7 +59,7 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v1.2.2", "v1.2.1", "v describe('when number = 2', () => { const number = 2; - test('should return [ "v1.2.0" ]', () => { + it('should return [ "v1.2.0" ]', () => { expect( getPatchVersionsToPurge(versions, number, { includePrerelease: true, @@ -69,7 +71,7 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v1.2.2", "v1.2.1", "v describe('when number >= 3', () => { const number = 3; - test('should return []', () => { + it('should return []', () => { expect( getPatchVersionsToPurge(versions, number, { includePrerelease: true, diff --git a/test/commands/purge.spec/getStaleVersionsToPurge.spec.ts b/test/commands/purge.spec/getStaleVersionsToPurge.spec.ts index 40e863f..f385920 100644 --- a/test/commands/purge.spec/getStaleVersionsToPurge.spec.ts +++ b/test/commands/purge.spec/getStaleVersionsToPurge.spec.ts @@ -1,3 +1,12 @@ +import { + afterAll, + beforeAll, + beforeEach, + describe, + expect, + it, +} from '@jest/globals'; + import { join, resolve } from 'node:path'; import { each } from 'async'; import { ensureDir, rm } from 'fs-extra'; @@ -18,33 +27,41 @@ afterAll(() => rm(resolve(out), { recursive: true, force: true })); beforeEach(() => each(versions, async (v) => ensureDir(resolve(join(out, v))))); describe('when versions = []', () => { - beforeAll(() => (versions = [])); + beforeAll(() => { + versions = []; + }); - test('should return []', async () => { + it('should return []', async () => { expect(await getStaleVersionsToPurge(versions, options)).toEqual([]); }); }); describe('when versions = [ "v0.1.0" ]', () => { - beforeAll(() => (versions = ['v0.1.0'])); + beforeAll(() => { + versions = ['v0.1.0']; + }); - test('should return []', async () => { + it('should return []', async () => { expect(await getStaleVersionsToPurge(versions, options)).toEqual([]); }); }); describe('when versions = [ "v1.0.0-alpha.1", "v0.1.0" ]', () => { - beforeAll(() => (versions = ['v1.0.0-alpha.1', 'v0.1.0'])); + beforeAll(() => { + versions = ['v1.0.0-alpha.1', 'v0.1.0']; + }); - test('should return []', async () => { + it('should return []', async () => { expect(await getStaleVersionsToPurge(versions, options)).toEqual([]); }); }); describe('when versions = [ "v1.0.0", "v1.0.0-alpha.1", "v0.1.0" ]', () => { - beforeAll(() => (versions = ['v1.0.0', 'v1.0.0-alpha.1', 'v0.1.0'])); + beforeAll(() => { + versions = ['v1.0.0', 'v1.0.0-alpha.1', 'v0.1.0']; + }); - test('should return [ "v1.0.0-alpha.1", "v0.1.0" ]', async () => { + it('should return [ "v1.0.0-alpha.1", "v0.1.0" ]', async () => { expect(await getStaleVersionsToPurge(versions, options)).toEqual([ 'v1.0.0-alpha.1', 'v0.1.0', diff --git a/test/commands/purge.spec/getVersionsToPurge.spec.ts b/test/commands/purge.spec/getVersionsToPurge.spec.ts index 7f6cf9d..33d4809 100644 --- a/test/commands/purge.spec/getVersionsToPurge.spec.ts +++ b/test/commands/purge.spec/getVersionsToPurge.spec.ts @@ -1,7 +1,9 @@ +import { describe, expect, it } from '@jest/globals'; + import { getVersionsToPurge } from '../../../src/commands/purge'; describe('when versionsToPurge is empty', () => { - test('should return []', () => { + it('should return []', () => { expect(getVersionsToPurge([])).toEqual([]); expect(getVersionsToPurge(['v1.0.0'])).toEqual([]); expect(getVersionsToPurge(['v1.0.0', 'v2.0.0'])).toEqual([]); @@ -9,7 +11,7 @@ describe('when versionsToPurge is empty', () => { }); describe('when versionsToPurge contains no matches', () => { - test('should return []', () => { + it('should return []', () => { expect(getVersionsToPurge([], ['v1.0.0'])).toEqual([]); expect( getVersionsToPurge(['v1.0.0'], ['v0.1.0'], { @@ -25,7 +27,7 @@ describe('when versionsToPurge contains no matches', () => { }); describe('when versionsToPurge contains matches', () => { - test('should return the matched versions', () => { + it('should return the matched versions', () => { expect(getVersionsToPurge(['v1.0.0'], ['v1.0.0'])).toEqual(['v1.0.0']); expect(getVersionsToPurge(['v1.0.0', 'v2.0.0'], ['>=1.5'])).toEqual([ 'v2.0.0', diff --git a/test/commands/purge.spec/handler.spec.ts b/test/commands/purge.spec/handler.spec.ts index c58f0fd..5f65952 100644 --- a/test/commands/purge.spec/handler.spec.ts +++ b/test/commands/purge.spec/handler.spec.ts @@ -1,3 +1,13 @@ +import { + afterAll, + beforeAll, + beforeEach, + describe, + expect, + it, + jest, +} from '@jest/globals'; + import { join, resolve } from 'node:path'; import { each } from 'async'; import { emptyDir, ensureDir, pathExists, rm, stat } from 'fs-extra'; @@ -8,7 +18,7 @@ import { cli, exclude } from '../../../src'; const out = 'test/.commands.purge.handler'; let versions: version[]; -let consoleLogMock: jest.SpyInstance; +const consoleLogMockImplementation = (undefined); beforeAll(() => ensureDir(resolve(out))); afterAll(() => rm(resolve(out), { recursive: true, force: true })); @@ -17,14 +27,15 @@ describe('when `out` points to empty directory', () => { beforeAll(() => emptyDir(out)); beforeEach(() => { versions = []; - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); }); - afterEach(() => consoleLogMock.mockRestore()); - test('should log: Nothing to purge!', async () => { + it('should log: Nothing to purge!', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); await cli().parse(`purge --out ${out}`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toHaveBeenCalledWith('Nothing to purge!'); + expect(log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledWith('Nothing to purge!'); }); }); @@ -50,15 +61,14 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user chooses "no"', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should exit without making changes', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should exit without making changes', async () => { inject(['']); await cli().parse(`purge --out ${out}`); - expect(console.log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); await each(versions, async (v) => expect( @@ -70,15 +80,14 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user chooses "yes"', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should purge stale versions', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should purge stale versions', async () => { inject(['yes']); await cli().parse(`purge --out ${out}`); - expect(console.log).toHaveBeenCalledTimes(2); + expect(log).toHaveBeenCalledTimes(2); const stale = ['v2.0.0-alpha.1', 'v0.1.0']; @@ -99,14 +108,13 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user passes -y', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should purge stale versions', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should purge stale versions', async () => { await cli().parse(`purge --out ${out} -y`); - expect(console.log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); const stale = ['v2.0.0-alpha.1', 'v0.1.0']; @@ -127,14 +135,13 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user passes -y --exclude ">=2.0.0"', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should purge stale versions', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should purge stale versions', async () => { await cli().parse(`purge --out ${out} -y --exclude ">=2.0.0"`); - expect(console.log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); const stale = ['v0.1.0']; @@ -155,37 +162,35 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user passes --no-stale', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should log: Nothing to purge!', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should log: Nothing to purge!', async () => { await cli().parse(`purge --out ${out} --no-stale`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toHaveBeenCalledWith('Nothing to purge!'); + expect(log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledWith('Nothing to purge!'); - consoleLogMock.mockReset(); + log.mockReset(); await cli().parse(`purge --out ${out} --stale false`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toHaveBeenCalledWith('Nothing to purge!'); + expect(log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledWith('Nothing to purge!'); - consoleLogMock.mockReset(); + log.mockReset(); await cli().parse(`purge --out ${out} --stale=false`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toHaveBeenCalledWith('Nothing to purge!'); + expect(log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledWith('Nothing to purge!'); }); }); describe('when user passes 2.0.1 -y', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should purge stale versions & 2.0.1', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should purge stale versions & 2.0.1', async () => { await cli().parse(`purge --out ${out} 2.0.1 -y`); - expect(console.log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); const stale = ['v2.0.0-alpha.1', 'v0.1.0']; const purge = ['v2.0.1']; @@ -207,14 +212,13 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user passes --major 1 -y', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should purge stale versions & all but the last major version', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should purge stale versions & all but the last major version', async () => { await cli().parse(`purge --out ${out} --major 1 -y`); - expect(console.log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); const stale = ['v2.0.0-alpha.1', 'v0.1.0']; const major = ['v1.2.2', 'v1.2.1', 'v1.2.0', 'v1.1.0', 'v1.0.0']; @@ -236,14 +240,13 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user passes --minor 1 -y', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should purge stale versions & all but the last minor version per major version', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should purge stale versions & all but the last minor version per major version', async () => { await cli().parse(`purge --out ${out} --minor 1 -y`); - expect(console.log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); const stale = ['v2.0.0-alpha.1', 'v0.1.0']; const minor = ['v2.0.1', 'v2.0.0', 'v1.1.0', 'v1.0.0']; @@ -265,14 +268,13 @@ describe('when versions = [ "v2.1.0", "v2.0.1", "v2.0.0", "v2.0.0-alpha.1", "v1. }); describe('when user passes --patch 1 -y', () => { - beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - }); - afterEach(() => consoleLogMock.mockRestore()); + it('should purge stale versions & all but the last patch version per minor version', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should purge stale versions & all but the last patch version per minor version', async () => { await cli().parse(`purge --out ${out} --patch 1 -y`); - expect(console.log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); const stale = ['v2.0.0-alpha.1', 'v0.1.0']; const patch = ['v2.0.0', 'v1.2.1', 'v1.2.0']; diff --git a/test/commands/purge.spec/isDev.spec.ts b/test/commands/purge.spec/isDev.spec.ts index fff4989..9ef9414 100644 --- a/test/commands/purge.spec/isDev.spec.ts +++ b/test/commands/purge.spec/isDev.spec.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from '@jest/globals'; + import { isDev } from '../../../src/commands/purge'; describe('when version = "v1.0.0"', () => { @@ -6,7 +8,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isDev(version, dev)).toBe(true); }); }); @@ -14,7 +16,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isDev(version, dev)).toBe(false); }); }); @@ -22,7 +24,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isDev(version, dev)).toBe(false); }); }); @@ -30,7 +32,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isDev(version, dev)).toBe(false); }); }); @@ -42,7 +44,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isDev(version, dev)).toBe(true); }); }); @@ -50,7 +52,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isDev(version, dev)).toBe(true); }); }); @@ -58,7 +60,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isDev(version, dev)).toBe(true); }); }); @@ -66,7 +68,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isDev(version, dev)).toBe(true); }); }); diff --git a/test/commands/purge.spec/isPinned.spec.ts b/test/commands/purge.spec/isPinned.spec.ts index b4e4ee0..61329d6 100644 --- a/test/commands/purge.spec/isPinned.spec.ts +++ b/test/commands/purge.spec/isPinned.spec.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from '@jest/globals'; + import { isPinned } from '../../../src/commands/purge'; describe('when version = "v1.0.0"', () => { @@ -9,7 +11,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -17,7 +19,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -25,7 +27,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -33,7 +35,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -45,7 +47,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -53,7 +55,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -61,7 +63,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -69,7 +71,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -81,7 +83,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -89,7 +91,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -97,7 +99,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -105,7 +107,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -117,7 +119,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -125,7 +127,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -133,7 +135,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -141,7 +143,7 @@ describe('when version = "v1.0.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -157,7 +159,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -165,7 +167,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -173,7 +175,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -181,7 +183,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -193,7 +195,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -201,7 +203,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -209,7 +211,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -217,7 +219,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -229,7 +231,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -237,7 +239,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -245,7 +247,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -253,7 +255,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -265,7 +267,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -273,7 +275,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v2.0.0"', () => { const dev = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); @@ -281,7 +283,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isPinned(version, stable, dev)).toBe(true); }); }); @@ -289,7 +291,7 @@ describe('when version = "v0.1.0"', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isPinned(version, stable, dev)).toBe(false); }); }); diff --git a/test/commands/purge.spec/isStable.spec.ts b/test/commands/purge.spec/isStable.spec.ts index 4bf59c4..2e49c1a 100644 --- a/test/commands/purge.spec/isStable.spec.ts +++ b/test/commands/purge.spec/isStable.spec.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from '@jest/globals'; + import { isStable } from '../../../src/commands/purge'; describe('when version = "v1.0.0"', () => { @@ -6,7 +8,7 @@ describe('when version = "v1.0.0"', () => { describe('when stable = "v1.0.0"', () => { const stable = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStable(version, stable)).toBe(true); }); }); @@ -14,7 +16,7 @@ describe('when version = "v1.0.0"', () => { describe('when stable = "v2.0.0"', () => { const stable = 'v2.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStable(version, stable)).toBe(true); }); }); @@ -22,7 +24,7 @@ describe('when version = "v1.0.0"', () => { describe('when stable = "v0.1.0"', () => { const stable = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isStable(version, stable)).toBe(true); }); }); @@ -30,7 +32,7 @@ describe('when version = "v1.0.0"', () => { describe('when stable = "auto"', () => { const stable = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isStable(version, stable)).toBe(true); }); }); @@ -42,7 +44,7 @@ describe('when version = "v0.1.0"', () => { describe('when stable = "v1.0.0"', () => { const stable = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStable(version, stable)).toBe(false); }); }); @@ -50,7 +52,7 @@ describe('when version = "v0.1.0"', () => { describe('when stable = "v2.0.0"', () => { const stable = 'v2.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStable(version, stable)).toBe(false); }); }); @@ -58,7 +60,7 @@ describe('when version = "v0.1.0"', () => { describe('when stable = "v0.1.0"', () => { const stable = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isStable(version, stable)).toBe(true); }); }); @@ -66,7 +68,7 @@ describe('when version = "v0.1.0"', () => { describe('when stable = "auto"', () => { const stable = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isStable(version, stable)).toBe(false); }); }); diff --git a/test/commands/purge.spec/isStale.spec.ts b/test/commands/purge.spec/isStale.spec.ts index 3616bd7..be1dbbc 100644 --- a/test/commands/purge.spec/isStale.spec.ts +++ b/test/commands/purge.spec/isStale.spec.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from '@jest/globals'; + import { isStale } from '../../../src/commands/purge'; describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { @@ -12,7 +14,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -20,7 +22,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -28,7 +30,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -36,7 +38,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -48,7 +50,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -56,7 +58,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -64,7 +66,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -72,7 +74,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -84,7 +86,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -92,7 +94,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -100,7 +102,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -108,7 +110,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -120,7 +122,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -128,7 +130,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -136,7 +138,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -144,7 +146,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -160,7 +162,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -168,7 +170,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -176,7 +178,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -184,7 +186,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -196,7 +198,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -204,7 +206,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -212,7 +214,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -220,7 +222,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -232,7 +234,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -240,7 +242,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -248,7 +250,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -256,7 +258,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -268,7 +270,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -276,7 +278,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -284,7 +286,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -292,7 +294,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return true', () => { + it('should return true', () => { expect(isStale(version, versions, stable, dev)).toBe(true); }); }); @@ -308,7 +310,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -316,7 +318,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -324,7 +326,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -332,7 +334,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -344,7 +346,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -352,7 +354,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -360,7 +362,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -368,7 +370,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -380,7 +382,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -388,7 +390,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -396,7 +398,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -404,7 +406,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -416,7 +418,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v0.1.0"', () => { const dev = 'v0.1.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -424,7 +426,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0-alpha.1"', () => { const dev = 'v1.0.0-alpha.1'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -432,7 +434,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "v1.0.0"', () => { const dev = 'v1.0.0'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); @@ -440,7 +442,7 @@ describe('when versions = [ "v0.1.0", "v1.0.0-alpha.1", "v1.0.0" ]', () => { describe('when dev = "auto"', () => { const dev = 'auto'; - test('should return false', () => { + it('should return false', () => { expect(isStale(version, versions, stable, dev)).toBe(false); }); }); diff --git a/test/commands/purge.spec/isValid.spec.ts b/test/commands/purge.spec/isValid.spec.ts index 24d8418..2b1fa43 100644 --- a/test/commands/purge.spec/isValid.spec.ts +++ b/test/commands/purge.spec/isValid.spec.ts @@ -1,34 +1,36 @@ +import { describe, expect, it } from '@jest/globals'; + import { isValid } from '../../../src/commands/purge'; describe('when number = undefined', () => { - test('should return false', () => { + it('should return false', () => { // @ts-expect-error: Intentionally passing undefined to test the typeof check expect(isValid()).toBe(false); }); }); describe('when number is infinite', () => { - test('should return false', () => { + it('should return false', () => { expect(isValid(+Infinity)).toBe(false); expect(isValid(-Infinity)).toBe(false); }); }); describe('when number is NaN', () => { - test('should return false', () => { + it('should return false', () => { expect(isValid(NaN)).toBe(false); }); }); describe('when number < 0', () => { - test('should return false', () => { + it('should return false', () => { expect(isValid(-1)).toBe(false); expect(isValid(-0.0000000001)).toBe(false); }); }); describe('when 0 <= number < Infinity', () => { - test('should return true', () => { + it('should return true', () => { expect(isValid(0)).toBe(true); expect(isValid(100.32)).toBe(true); expect(isValid(3)).toBe(true); diff --git a/test/commands/purge.spec/shouldExclude.spec.ts b/test/commands/purge.spec/shouldExclude.spec.ts index f14f6ea..bc49a77 100644 --- a/test/commands/purge.spec/shouldExclude.spec.ts +++ b/test/commands/purge.spec/shouldExclude.spec.ts @@ -1,13 +1,15 @@ +import { describe, expect, it } from '@jest/globals'; + import { shouldExclude } from '../../../src/commands/purge'; describe('when exclude is empty', () => { - test('should return false', () => { + it('should return false', () => { expect(shouldExclude('v1.0.0')).toBe(false); }); }); describe('when version is an exact match for an element of exclude', () => { - test('should return true', () => { + it('should return true', () => { expect( shouldExclude('v1.0.0', ['v1.0.0'], { includePrerelease: true }) ).toBe(true); @@ -38,7 +40,7 @@ describe('when version is an exact match for an element of exclude', () => { }); describe('when exclude includes a minor version which matches', () => { - test('should return true', () => { + it('should return true', () => { expect( shouldExclude('v1.0.0', ['v1.0.x'], { includePrerelease: true }) ).toBe(true); @@ -69,7 +71,7 @@ describe('when exclude includes a minor version which matches', () => { }); describe('when exclude includes a major version which matches', () => { - test('should return true', () => { + it('should return true', () => { expect( shouldExclude('v1.0.0', ['v1.x.x'], { includePrerelease: true }) ).toBe(true); diff --git a/test/commands/purge.spec/sliceValues.spec.ts b/test/commands/purge.spec/sliceValues.spec.ts index 85adbe7..3997eae 100644 --- a/test/commands/purge.spec/sliceValues.spec.ts +++ b/test/commands/purge.spec/sliceValues.spec.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from '@jest/globals'; + import { sliceValues } from '../../../src/commands/purge'; describe('when map = { foo: [ "1", "2", "1" ], bar: [ "4", "3", "2" ] }', () => { @@ -8,7 +10,7 @@ describe('when map = { foo: [ "1", "2", "1" ], bar: [ "4", "3", "2" ] }', () => describe('when index = 0', () => { const index = 0; - test('should return: [ [ "1", "2" ], [ "4", "3", "2" ] ]', () => { + it('should return: [ [ "1", "2" ], [ "4", "3", "2" ] ]', () => { expect(sliceValues(map, index)).toEqual([ ['1', '2'], ['4', '3', '2'], @@ -19,7 +21,7 @@ describe('when map = { foo: [ "1", "2", "1" ], bar: [ "4", "3", "2" ] }', () => describe('when index = 2', () => { const index = 2; - test('should return: [ [], [ "2" ] ]', () => { + it('should return: [ [], [ "2" ] ]', () => { expect(sliceValues(map, index)).toEqual([[], ['2']]); }); }); diff --git a/test/commands/synchronize.spec/getDiffs.spec.ts b/test/commands/synchronize.spec/getDiffs.spec.ts index 4b1fa9c..88f6474 100644 --- a/test/commands/synchronize.spec/getDiffs.spec.ts +++ b/test/commands/synchronize.spec/getDiffs.spec.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { ensureDir, rm, stat, writeFile } from 'fs-extra'; import { metadata } from 'typedoc-plugin-versions'; @@ -21,7 +23,7 @@ describe('when `out` points to an empty directory', () => { stable: 'v1.0.0', }; - test('should complete appropriately', async () => { + it('should complete appropriately', async () => { const diffs = getDiffs(dir, metadata, refreshedMetadata); expect(diffs).resolves.not.toThrow(); @@ -54,7 +56,7 @@ describe('when `out` points to a directory containing metadata', () => { stable: 'v1.0.0', }; - test('should complete appropriately', async () => { + it('should complete appropriately', async () => { const diffs = getDiffs(dir, metadata, refreshedMetadata); expect(diffs).resolves.not.toThrow(); diff --git a/test/commands/synchronize.spec/getMetadataDiff.spec.ts b/test/commands/synchronize.spec/getMetadataDiff.spec.ts index 3fac288..13d0415 100644 --- a/test/commands/synchronize.spec/getMetadataDiff.spec.ts +++ b/test/commands/synchronize.spec/getMetadataDiff.spec.ts @@ -1,13 +1,15 @@ +import { describe, expect, it } from '@jest/globals'; + import { getMetadataDiff } from '../../../src/commands/synchronize'; describe('when left = {} & right = {}', () => { - test('should return empty', () => { + it('should return empty', () => { expect(getMetadataDiff({}, {})).toBe(''); }); }); describe('when left = {} & right = { stable: "v1.0.0" }', () => { - test('should return non-empty', () => { + it('should return non-empty', () => { expect( getMetadataDiff({}, { stable: 'v1.0.0' }).length ).toBeGreaterThan(0); diff --git a/test/commands/synchronize.spec/handler.spec.ts b/test/commands/synchronize.spec/handler.spec.ts index ca3bc64..38bb82c 100644 --- a/test/commands/synchronize.spec/handler.spec.ts +++ b/test/commands/synchronize.spec/handler.spec.ts @@ -1,3 +1,14 @@ +import { + afterAll, + afterEach, + beforeAll, + beforeEach, + describe, + expect, + it, + jest, +} from '@jest/globals'; + import { EOL } from 'node:os'; import { join, resolve } from 'node:path'; import process from 'node:process'; @@ -8,34 +19,35 @@ import { getSemanticVersion } from 'typedoc-plugin-versions/src/etc/utils'; import { cli } from '../../../src'; const out = resolve(join('test', '.commands.sync.handler')); -let consoleLogMock: jest.SpyInstance; -let consoleErrorMock: jest.SpyInstance; -let consoleTimeMock: jest.SpyInstance; -let consoleTimeEndMock: jest.SpyInstance; -let processExitMock: jest.SpyInstance; +const consoleLogMockImplementation = (undefined) as typeof console.log; +const consoleTimeMockImplementation = (( + undefined +)) as typeof console.time; +const processExitMockImplementation = (( + undefined +)) as typeof process.exit; beforeAll(() => ensureDir(out)); afterAll(() => rm(out, { recursive: true, force: true })); describe('when `out` points to empty directory', () => { beforeAll(() => emptyDir(out)); - beforeEach(() => { - consoleErrorMock = jest.spyOn(console, 'error').mockImplementation(); - processExitMock = jest.spyOn(process, 'exit').mockImplementation(); - }); - afterEach(() => { - consoleErrorMock.mockRestore(); - processExitMock.mockRestore(); - }); - test('should error: Missing docs for package.json version...', async () => { + it('should error: Missing docs for package.json version...', async () => { + const error = jest + .spyOn(console, 'error') + .mockImplementation(consoleLogMockImplementation); + const exit = jest + .spyOn(process, 'exit') + .mockImplementation(processExitMockImplementation); + await cli().parse(`sync --out ${out}`); - expect(console.error).toHaveBeenCalledTimes(1); - expect(console.error).toHaveBeenCalledWith( + expect(error).toHaveBeenCalledTimes(1); + expect(error).toHaveBeenCalledWith( `Missing docs for package.json version: ${getSemanticVersion()}${EOL}Did you forget to run typedoc?` ); - expect(process.exit).toHaveBeenCalledTimes(1); - expect(process.exit).toHaveBeenCalledWith(1); + expect(exit).toHaveBeenCalledTimes(1); + expect(exit).toHaveBeenCalledWith(1); }); }); @@ -48,125 +60,99 @@ describe('when `out` contains package.json version docs', () => { describe('when metadata out of date', () => { describe('when user chooses "no"', () => { - beforeEach(() => { - consoleLogMock = jest + it('should exit without making changes', async () => { + const log = jest .spyOn(console, 'log') - .mockImplementation(); - consoleTimeMock = jest + .mockImplementation(consoleLogMockImplementation); + const time = jest .spyOn(console, 'time') - .mockImplementation(); - consoleTimeEndMock = jest + .mockImplementation(consoleTimeMockImplementation); + const timeEnd = jest .spyOn(console, 'timeEnd') - .mockImplementation(); - }); - - afterEach(() => { - consoleLogMock.mockRestore(); - consoleTimeMock.mockRestore(); - consoleTimeEndMock.mockRestore(); - }); + .mockImplementation(consoleTimeMockImplementation); - test('should exit without making changes', async () => { inject(['']); await cli().parse(`sync --out ${dir}`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.time).not.toHaveBeenCalled(); - expect(console.timeEnd).not.toHaveBeenCalled(); + expect(log).toHaveBeenCalledTimes(1); + expect(time).not.toHaveBeenCalled(); + expect(timeEnd).not.toHaveBeenCalled(); }); describe('when user passes --symlinks', () => { - test('should exit fixing symlinks only', async () => { + it('should exit fixing symlinks only', async () => { + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); + const time = jest + .spyOn(console, 'time') + .mockImplementation(consoleTimeMockImplementation); + const timeEnd = jest + .spyOn(console, 'timeEnd') + .mockImplementation(consoleTimeMockImplementation); + await cli().parse(`sync --out ${dir} --symlinks`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.time).toHaveBeenCalledTimes(1); - expect(console.time).toHaveBeenCalledWith('symlinks'); - expect(console.timeEnd).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledTimes(1); + expect(time).toHaveBeenCalledTimes(1); + expect(time).toHaveBeenCalledWith('symlinks'); + expect(timeEnd).toHaveBeenCalledTimes(1); }); }); }); describe('when user chooses "yes"', () => { - beforeEach(() => { - consoleLogMock = jest + it('should make all changes', async () => { + const log = jest .spyOn(console, 'log') - .mockImplementation(); - consoleTimeMock = jest + .mockImplementation(consoleLogMockImplementation); + const time = jest .spyOn(console, 'time') - .mockImplementation(); - consoleTimeEndMock = jest + .mockImplementation(consoleTimeMockImplementation); + const timeEnd = jest .spyOn(console, 'timeEnd') - .mockImplementation(); - }); - - afterEach(() => { - consoleLogMock.mockRestore(); - consoleTimeMock.mockRestore(); - consoleTimeEndMock.mockRestore(); - }); + .mockImplementation(consoleTimeMockImplementation); - test('should make all changes', async () => { inject(['yes']); await cli().parse(`sync --out ${dir}`); - expect(console.log).toHaveBeenCalledTimes(2); - expect(console.time).toHaveBeenCalledTimes(4); - expect(console.timeEnd).toHaveBeenCalledTimes(4); - expect(console.time).toHaveBeenCalledWith('symlinks'); + expect(log).toHaveBeenCalledTimes(2); + expect(time).toHaveBeenCalledTimes(4); + expect(timeEnd).toHaveBeenCalledTimes(4); + expect(time).toHaveBeenCalledWith('symlinks'); }); }); describe('when user passes -y', () => { - beforeEach(() => { - consoleLogMock = jest + it('should make all changes', async () => { + const log = jest .spyOn(console, 'log') - .mockImplementation(); - consoleTimeMock = jest + .mockImplementation(consoleLogMockImplementation); + const time = jest .spyOn(console, 'time') - .mockImplementation(); - consoleTimeEndMock = jest + .mockImplementation(consoleTimeMockImplementation); + const timeEnd = jest .spyOn(console, 'timeEnd') - .mockImplementation(); - }); + .mockImplementation(consoleTimeMockImplementation); - afterEach(() => { - consoleLogMock.mockRestore(); - consoleTimeMock.mockRestore(); - consoleTimeEndMock.mockRestore(); - }); - - test('should make all changes', async () => { await cli().parse(`sync --out ${dir} -y`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.time).toHaveBeenCalledTimes(4); - expect(console.timeEnd).toHaveBeenCalledTimes(4); - expect(console.time).toHaveBeenCalledWith('symlinks'); + expect(log).toHaveBeenCalledTimes(1); + expect(time).toHaveBeenCalledTimes(4); + expect(timeEnd).toHaveBeenCalledTimes(4); + expect(time).toHaveBeenCalledWith('symlinks'); }); }); }); describe('when metadata up-to-date', () => { - beforeEach(async () => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - consoleTimeMock = jest.spyOn(console, 'time').mockImplementation(); - consoleTimeEndMock = jest - .spyOn(console, 'timeEnd') - .mockImplementation(); + it('should log: "Already up-to-date."', async () => { await cli().parse(`sync --out ${dir} -y`); - consoleLogMock.mockReset(); - consoleTimeMock.mockReset(); - consoleTimeEndMock.mockReset(); - }); - afterEach(() => { - consoleLogMock.mockRestore(); - consoleTimeMock.mockRestore(); - consoleTimeEndMock.mockRestore(); - }); + const log = jest + .spyOn(console, 'log') + .mockImplementation(consoleLogMockImplementation); - test('should log: "Already up-to-date."', async () => { inject(['']); await cli().parse(`sync --out ${dir}`); - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toHaveBeenCalledWith('Already up-to-date.'); + expect(log).toHaveBeenCalledTimes(1); + expect(log).toHaveBeenCalledWith('Already up-to-date.'); }); }); }); diff --git a/test/commands/synchronize.spec/makeSymlinks.spec.ts b/test/commands/synchronize.spec/makeSymlinks.spec.ts index 21a3009..735dea4 100644 --- a/test/commands/synchronize.spec/makeSymlinks.spec.ts +++ b/test/commands/synchronize.spec/makeSymlinks.spec.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { each } from 'async'; import { ensureDir, rm, stat, lstat, readlink, pathExists } from 'fs-extra'; @@ -23,7 +25,7 @@ describe('when metadata = { versions: [ "v1.0.0" ], stable: "v1.0.0" }', () => { ) ); - test('should create symlinks appropriately', async () => { + it('should create symlinks appropriately', async () => { makeSymlinks(dir, metadata); expect((await stat(dir)).isDirectory()).toBe(true); @@ -53,7 +55,7 @@ describe('when metadata = { versions: [ "v0.1.0" ], dev: "v0.1.0" }', () => { ) ); - test('should create symlinks appropriately', async () => { + it('should create symlinks appropriately', async () => { makeSymlinks(dir, metadata); expect((await stat(dir)).isDirectory()).toBe(true); diff --git a/test/commands/synchronize.spec/refreshIndexHtml.spec.ts b/test/commands/synchronize.spec/refreshIndexHtml.spec.ts index 8d1deaf..b76dc13 100644 --- a/test/commands/synchronize.spec/refreshIndexHtml.spec.ts +++ b/test/commands/synchronize.spec/refreshIndexHtml.spec.ts @@ -1,7 +1,9 @@ +import { describe, expect, it } from '@jest/globals'; + import { refreshIndexHtml } from '../../../src/commands/synchronize'; describe('when metadata = { versions: [ "v1.0.0" ], stable: "v1.0.0" }', () => { - test('should redirect to stable', () => { + it('should redirect to stable', () => { expect( refreshIndexHtml({ versions: ['v1.0.0'], stable: 'v1.0.0' }) ).toBe(''); @@ -9,7 +11,7 @@ describe('when metadata = { versions: [ "v1.0.0" ], stable: "v1.0.0" }', () => { }); describe('when metadata = { versions: [ "v0.1.0" ], dev: "v0.1.0" }', () => { - test('should redirect to dev', () => { + it('should redirect to dev', () => { expect(refreshIndexHtml({ versions: ['v0.1.0'], dev: 'v0.1.0' })).toBe( '' ); diff --git a/test/commands/synchronize.spec/refreshVersionJs.spec.ts b/test/commands/synchronize.spec/refreshVersionJs.spec.ts index 9ce8e07..7dc6c8e 100644 --- a/test/commands/synchronize.spec/refreshVersionJs.spec.ts +++ b/test/commands/synchronize.spec/refreshVersionJs.spec.ts @@ -1,7 +1,9 @@ +import { describe, expect, it } from '@jest/globals'; + import { refreshVersionJs } from '../../../src/commands/synchronize'; describe('when metadata = { versions: [ "v1.0.0" ], stable: "v1.0.0" }', () => { - test('should complete appropriately', () => { + it('should complete appropriately', () => { expect( refreshVersionJs({ versions: ['v1.0.0'], stable: 'v1.0.0' }) ).toBe( diff --git a/test/utils.spec/coerceStringArray.spec.ts b/test/utils.spec/coerceStringArray.spec.ts index 26ce931..fc5c264 100644 --- a/test/utils.spec/coerceStringArray.spec.ts +++ b/test/utils.spec/coerceStringArray.spec.ts @@ -1,25 +1,27 @@ +import { describe, expect, it } from '@jest/globals'; + import { coerceStringArray } from '../../src/utils'; describe('when array = []', () => { - test('should return []', () => { + it('should return []', () => { expect(coerceStringArray([])).toEqual([]); }); }); describe('when array = ["foo", "bar"]', () => { - test('should return ["foo", "bar"]', () => { + it('should return ["foo", "bar"]', () => { expect(coerceStringArray(['foo', 'bar'])).toEqual(['foo', 'bar']); }); }); describe('when array = ["`foo`", `"bar"`]', () => { - test('should return ["foo", "bar"]', () => { + it('should return ["foo", "bar"]', () => { expect(coerceStringArray(['`foo`', `"bar"`])).toEqual(['foo', 'bar']); }); }); describe('when array = [`\'foo\'`, "bar"]', () => { - test('should return ["foo", "bar"]', () => { + it('should return ["foo", "bar"]', () => { expect(coerceStringArray([`'foo'`, 'bar'])).toEqual(['foo', 'bar']); }); }); diff --git a/test/utils.spec/drop.spec.ts b/test/utils.spec/drop.spec.ts index 2cb23bc..af22c09 100644 --- a/test/utils.spec/drop.spec.ts +++ b/test/utils.spec/drop.spec.ts @@ -1,14 +1,16 @@ +import { describe, expect, it } from '@jest/globals'; + import { drop } from '../../src/utils'; describe('using predicate', () => { describe('when array = [-3, -2, -1, 0, 1, 2, 3] & predicate = (v) => v < 0)', () => { - test('should return [-3, -2, -1]', () => { + it('should return [-3, -2, -1]', () => { expect(drop([-3, -2, -1, 0, 1, 2, 3], (v) => v < 0)).toEqual([ -3, -2, -1, ]); }); - test('after the operation, the array should equal [0, 1, 2, 3]', () => { + it('after the operation, the array should equal [0, 1, 2, 3]', () => { const arr = [-3, -2, -1, 0, 1, 2, 3]; expect(drop(arr, (v) => v < 0)).toEqual([-3, -2, -1]); expect(arr).toEqual([0, 1, 2, 3]); @@ -18,13 +20,13 @@ describe('using predicate', () => { describe('using elements', () => { describe('when array = [-3, -2, -1, 0, 1, 2, 3] & elements = [-2, 3, 0]', () => { - test('should return [-2, 0, 3]', () => { + it('should return [-2, 0, 3]', () => { expect(drop([-3, -2, -1, 0, 1, 2, 3], [-2, 3, 0])).toEqual([ -2, 0, 3, ]); }); - test('after the operation, the array should equal [-3, -1, 1, 2]', () => { + it('after the operation, the array should equal [-3, -1, 1, 2]', () => { const arr = [-3, -2, -1, 0, 1, 2, 3]; expect(drop(arr, [-2, 3, 0])).toEqual([-2, 0, 3]); expect(arr).toEqual([-3, -1, 1, 2]); diff --git a/test/utils.spec/exclude.spec.ts b/test/utils.spec/exclude.spec.ts index 7acd32f..9dc4d9c 100644 --- a/test/utils.spec/exclude.spec.ts +++ b/test/utils.spec/exclude.spec.ts @@ -1,8 +1,10 @@ +import { describe, expect, it } from '@jest/globals'; + import { exclude } from '../../src/utils'; describe('using predicate', () => { describe('when array = [-3, -2, -1, 0, 1, 2, 3] & predicate = (v) => v < 0)', () => { - test('should return [0, 1, 2, 3]', () => { + it('should return [0, 1, 2, 3]', () => { expect(exclude([-3, -2, -1, 0, 1, 2, 3], (v) => v < 0)).toEqual([ 0, 1, 2, 3, ]); @@ -12,7 +14,7 @@ describe('using predicate', () => { describe('using elements', () => { describe('when array = [-3, -2, -1, 0, 1, 2, 3] & elements = [-2, 3, 0]', () => { - test('should return [-3, -1, 1, 2]', () => { + it('should return [-3, -1, 1, 2]', () => { expect(exclude([-3, -2, -1, 0, 1, 2, 3], [-2, 3, 0])).toEqual([ -3, -1, 1, 2, ]); diff --git a/test/utils.spec/findFile.spec.ts b/test/utils.spec/findFile.spec.ts index e3e7a9f..0a44f8b 100644 --- a/test/utils.spec/findFile.spec.ts +++ b/test/utils.spec/findFile.spec.ts @@ -1,10 +1,12 @@ +import { describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { cwd } from 'node:process'; import { findFile } from '../../src/utils'; describe('when path = undefined & filePaths = undefined', () => { - test('should throw Error', async () => { + it('should throw Error', async () => { try { await findFile(); fail('must throw'); @@ -19,7 +21,7 @@ describe('when path = undefined & filePaths = undefined', () => { }); describe('when path = undefined & filePaths = ["typedoc.json"]', () => { - test('should find local package typedoc.json', async () => { + it('should find local package typedoc.json', async () => { expect(await findFile(undefined, ['typedoc.json'])).toBe( resolve(join(cwd(), 'typedoc.json')) ); @@ -27,7 +29,7 @@ describe('when path = undefined & filePaths = ["typedoc.json"]', () => { }); describe('when path = undefined & filePaths = ["foo.bar", "typedoc.json"]', () => { - test('should find local package typedoc.json', async () => { + it('should find local package typedoc.json', async () => { expect(await findFile(undefined, ['foo.bar', 'typedoc.json'])).toBe( resolve(join(cwd(), 'typedoc.json')) ); @@ -35,7 +37,7 @@ describe('when path = undefined & filePaths = ["foo.bar", "typedoc.json"]', () = }); describe('when path = undefined & filePaths = ["foo.bar"]', () => { - test('should throw Error', async () => { + it('should throw Error', async () => { try { await findFile(undefined, ['foo.bar']); fail('must throw'); @@ -46,7 +48,7 @@ describe('when path = undefined & filePaths = ["foo.bar"]', () => { }); describe('when path = "typedoc.json"', () => { - test('should find local package typedoc.json', async () => { + it('should find local package typedoc.json', async () => { expect(await findFile('typedoc.json')).toBe( resolve(join(cwd(), 'typedoc.json')) ); @@ -54,7 +56,7 @@ describe('when path = "typedoc.json"', () => { }); describe('when path = "foo.bar"', () => { - test('should throw Error', async () => { + it('should throw Error', async () => { try { await findFile('foo.bar'); fail('must throw'); diff --git a/test/utils.spec/findTsConfigFile.spec.ts b/test/utils.spec/findTsConfigFile.spec.ts index 8a83fe3..5eaa4b6 100644 --- a/test/utils.spec/findTsConfigFile.spec.ts +++ b/test/utils.spec/findTsConfigFile.spec.ts @@ -1,22 +1,24 @@ +import { describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { cwd } from 'node:process'; import { findTsConfigFile } from '../../src/utils'; describe('when path = undefined', () => { - test('should find local package tsconfig.json', () => { + it('should find local package tsconfig.json', () => { expect(findTsConfigFile()).toBe(resolve(join(cwd(), 'tsconfig.json'))); }); }); describe('when path = "./tsconfig.json"', () => { - test('should find local package tsconfig.json', () => { + it('should find local package tsconfig.json', () => { expect(findTsConfigFile()).toBe(resolve(join(cwd(), 'tsconfig.json'))); }); }); describe('when path = "./foo"', () => { - test('should throw Error', () => { + it('should throw Error', () => { try { findTsConfigFile('./foo'); fail('must throw'); @@ -27,7 +29,7 @@ describe('when path = "./foo"', () => { }); describe('when path = "../"', () => { - test('should throw Error', () => { + it('should throw Error', () => { try { findTsConfigFile('../'); fail('must throw'); diff --git a/test/utils.spec/getOptions.spec.ts b/test/utils.spec/getOptions.spec.ts index e704868..f5e7491 100644 --- a/test/utils.spec/getOptions.spec.ts +++ b/test/utils.spec/getOptions.spec.ts @@ -1,3 +1,5 @@ +import { beforeAll, describe, expect, it } from '@jest/globals'; + import { join } from 'node:path'; import { cwd } from 'node:process'; import { cli, isOptions, Options } from '../../src'; @@ -19,15 +21,15 @@ describe('local package', () => { ); }); - test('return should implement the Options interface', () => { + it('return should implement the Options interface', () => { expect(isOptions(options)).toBe(true); }); - test('return.out should be "./docs"', () => { + it('return.out should be "./docs"', () => { expect(options.out).toBe(join(dir, 'docs')); }); - test('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { + it('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { expect(options.versions).toEqual({ stable: 'auto', dev: 'auto', @@ -46,15 +48,15 @@ describe('local package', () => { ); }); - test('return should implement the Options interface', () => { + it('return should implement the Options interface', () => { expect(isOptions(options)).toBe(true); }); - test('return.out should be "./docs"', () => { + it('return.out should be "./docs"', () => { expect(options.out).toBe(join(dir, 'docs')); }); - test('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { + it('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { expect(options.versions).toEqual({ stable: 'auto', dev: 'auto', @@ -64,7 +66,7 @@ describe('local package', () => { }); describe('when `--out foo`', () => { - test('should throw Error', async () => { + it('should throw Error', async () => { try { await getOptions( await cli() @@ -89,15 +91,15 @@ describe('local package', () => { ); }); - test('return should implement the Options interface', () => { + it('return should implement the Options interface', () => { expect(isOptions(options)).toBe(true); }); - test('return.out should be "./docs"', () => { + it('return.out should be "./docs"', () => { expect(options.out).toBe(join(dir, 'docs')); }); - test('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { + it('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { expect(options.versions).toEqual({ stable: 'auto', dev: 'auto', @@ -116,15 +118,15 @@ describe('local package', () => { ); }); - test('return should implement the Options interface', () => { + it('return should implement the Options interface', () => { expect(isOptions(options)).toBe(true); }); - test('return.out should be "./docs"', () => { + it('return.out should be "./docs"', () => { expect(options.out).toBe(join(dir, 'docs')); }); - test('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { + it('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { expect(options.versions).toEqual({ stable: 'auto', dev: 'auto', @@ -134,7 +136,7 @@ describe('local package', () => { }); describe('when `--tsconfig ./foobar`', () => { - test('should throw Error', async () => { + it('should throw Error', async () => { try { await getOptions( await cli() @@ -159,15 +161,15 @@ describe('local package', () => { ); }); - test('return should implement the Options interface', () => { + it('return should implement the Options interface', () => { expect(isOptions(options)).toBe(true); }); - test('return.out should be "./docs"', () => { + it('return.out should be "./docs"', () => { expect(options.out).toBe(join(dir, 'docs')); }); - test('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { + it('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { expect(options.versions).toEqual({ stable: 'auto', dev: 'auto', @@ -186,15 +188,15 @@ describe('local package', () => { ); }); - test('return should implement the Options interface', () => { + it('return should implement the Options interface', () => { expect(isOptions(options)).toBe(true); }); - test('return.out should be "./docs"', () => { + it('return.out should be "./docs"', () => { expect(options.out).toBe(join(dir, 'docs')); }); - test('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { + it('return.versions should equal {stable: "auto", dev: "auto", domLocation: "false"}', () => { expect(options.versions).toEqual({ stable: 'auto', dev: 'auto', @@ -204,7 +206,7 @@ describe('local package', () => { }); describe('when `--typedoc ./bar`', () => { - test('should throw Error', async () => { + it('should throw Error', async () => { try { await getOptions( await cli() diff --git a/test/utils.spec/getOut.spec.ts b/test/utils.spec/getOut.spec.ts index e495f32..049f44d 100644 --- a/test/utils.spec/getOut.spec.ts +++ b/test/utils.spec/getOut.spec.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { cwd } from 'node:process'; import { cli } from '../../src'; @@ -10,7 +12,7 @@ describe('local package', () => { describe('when no cli arguments passed', () => { describe('when parsing `commonOptions`', () => { - test('return should be "./docs"', async () => { + it('return should be "./docs"', async () => { expect( await getOut( await cli() @@ -23,7 +25,7 @@ describe('local package', () => { }); describe('when parsing only `out`', () => { - test('should throw Error', async () => { + it('should throw Error', async () => { try { await getOut( await cli().options({ out }).demandCommand(0).parse() @@ -38,7 +40,7 @@ describe('local package', () => { describe('when `--out docs', () => { describe('when parsing `commonOptions`', () => { - test('return should be "./docs"', async () => { + it('return should be "./docs"', async () => { expect( await getOut( await cli() @@ -51,7 +53,7 @@ describe('local package', () => { }); describe('when parsing only `out`', () => { - test('return should be "./docs"', async () => { + it('return should be "./docs"', async () => { expect( await getOut( await cli() diff --git a/test/utils.spec/isBrokenSymlink.spec.ts b/test/utils.spec/isBrokenSymlink.spec.ts index 486946a..a2277a9 100644 --- a/test/utils.spec/isBrokenSymlink.spec.ts +++ b/test/utils.spec/isBrokenSymlink.spec.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { ensureSymlink, ensureDir, rm } from 'fs-extra'; @@ -8,13 +10,13 @@ beforeAll(() => ensureDir(testDir)); afterAll(() => rm(testDir, { recursive: true, force: true })); describe('when path points to a file', () => { - test('should return false', async () => { + it('should return false', async () => { expect(await isBrokenSymlink(resolve('tsconfig.json'))).toBe(false); }); }); describe('when path points to a non-existant path', () => { - test('should return false', async () => { + it('should return false', async () => { expect(await isBrokenSymlink(resolve('foo.bar'))).toBe(false); }); }); @@ -28,7 +30,7 @@ describe('when path points to a valid symbolic link', () => { await ensureSymlink(src, target, 'junction'); }); - test('should return false', async () => { + it('should return false', async () => { expect(await isBrokenSymlink(target)).toBe(false); }); }); @@ -43,7 +45,7 @@ describe('when path points to a broken symbolic link', () => { await rm(src, { recursive: true, force: true }); }); - test('should return false', async () => { + it('should return false', async () => { expect(await isBrokenSymlink(target)).toBe(true); }); }); diff --git a/test/utils.spec/isSymlink.spec.ts b/test/utils.spec/isSymlink.spec.ts index f3f9fe5..e3b382d 100644 --- a/test/utils.spec/isSymlink.spec.ts +++ b/test/utils.spec/isSymlink.spec.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { ensureSymlink, ensureDir, rm } from 'fs-extra'; @@ -8,13 +10,13 @@ beforeAll(() => ensureDir(testDir)); afterAll(() => rm(testDir, { recursive: true, force: true })); describe('when path points to a file', () => { - test('should return false', async () => { + it('should return false', async () => { expect(await isSymlink(resolve('tsconfig.json'))).toBe(false); }); }); describe('when path points to a non-existant path', () => { - test('should return false', async () => { + it('should return false', async () => { expect(await isSymlink(resolve('foo.bar'))).toBe(false); }); }); @@ -28,7 +30,7 @@ describe('when path points to a valid symbolic link', () => { await ensureSymlink(src, target, 'junction'); }); - test('should return false', async () => { + it('should return false', async () => { expect(await isSymlink(target)).toBe(true); }); }); @@ -43,7 +45,7 @@ describe('when path points to a broken symbolic link', () => { await rm(src, { recursive: true, force: true }); }); - test('should return false', async () => { + it('should return false', async () => { expect(await isSymlink(target)).toBe(true); }); }); diff --git a/test/utils.spec/unlinkBrokenSymlinks.spec.ts b/test/utils.spec/unlinkBrokenSymlinks.spec.ts index 9410654..1caf613 100644 --- a/test/utils.spec/unlinkBrokenSymlinks.spec.ts +++ b/test/utils.spec/unlinkBrokenSymlinks.spec.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it } from '@jest/globals'; + import { join, resolve } from 'node:path'; import { ensureSymlink, ensureDir, rm, stat, lstat, readlink } from 'fs-extra'; @@ -8,7 +10,7 @@ beforeAll(() => ensureDir(testDir)); afterAll(() => rm(testDir, { recursive: true, force: true })); describe('when dir points to a file', () => { - test('should throw error', async () => { + it('should throw error', async () => { try { await unlinkBrokenSymlinks(resolve('tsconfig.json')); fail('must throw'); @@ -22,7 +24,7 @@ describe('when dir points to an empty directory', () => { const dir = resolve(join(testDir, 'foo')); beforeAll(() => ensureDir(dir)); - test('should complete normally', () => { + it('should complete normally', () => { expect(unlinkBrokenSymlinks(testDir)).resolves.not.toThrow(); }); }); @@ -37,7 +39,7 @@ describe('when dir points to a directory containing valid symlinks', () => { await ensureSymlink(src, target, 'junction'); }); - test('should complete normally without deleting any symlinks', async () => { + it('should complete normally without deleting any symlinks', async () => { await unlinkBrokenSymlinks(dir); expect((await stat(dir)).isDirectory()).toBe(true); expect((await stat(src)).isDirectory()).toBe(true); @@ -57,7 +59,7 @@ describe('when dir points to a directory containing invalid symlinks', () => { await rm(src, { recursive: true, force: true }); }); - test('should complete and to have removed the broken symlink', async () => { + it('should complete and to have removed the broken symlink', async () => { await unlinkBrokenSymlinks(dir); expect((await stat(dir)).isDirectory()).toBe(true); expect(stat(src)).rejects.toThrow();