From 8fcd0393e4cb49986b0cd37399e7209a4d8c871e Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 12 Jan 2024 15:57:56 -0500 Subject: [PATCH 01/27] Initial commit --- .gitignore | 14 + LICENSE | 201 + README.md | 3 +- babel.config.js | 6 + package-lock.json | 11827 ++++++++++++++++++++++++++ package.json | 47 + src/__mocks__/TestPipeline.ts | 101 + src/__tests__/buildPipeline.test.ts | 98 + src/buildPipeline.ts | 119 + src/error/PipelineError.ts | 42 + src/index.ts | 1 + src/types.ts | 87 + tsconfig.json | 11 + 13 files changed, 12556 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 babel.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/__mocks__/TestPipeline.ts create mode 100644 src/__tests__/buildPipeline.test.ts create mode 100644 src/buildPipeline.ts create mode 100644 src/error/PipelineError.ts create mode 100644 src/index.ts create mode 100644 src/types.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..156cda6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# Compiled code +build/ + +# Dependency directories +node_modules/ + +# TypeScript cache +*.tsbuildinfo + +# npm cache directory +.npm + +# eslint cache +.eslintcache \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 3672e2f..579e5c1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -# pipeline +# Pipeline + A toolkit to easily build synchronous process pipelines in TypeScript/JavaScript diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..dd242dc --- /dev/null +++ b/babel.config.js @@ -0,0 +1,6 @@ +module.exports = { + presets: [ + ["@babel/preset-env", { targets: { node: "current" } }], + "@babel/preset-typescript", + ], +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..036cf04 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11827 @@ +{ + "name": "@fieldguide/pipeline", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@fieldguide/pipeline", + "version": "1.0.0", + "license": "Apache-2.0", + "devDependencies": { + "@babel/core": "^7.21.8", + "@babel/preset-env": "^7.21.5", + "@babel/preset-typescript": "^7.21.5", + "@types/jest": "^29.5.1", + "@types/lodash": "^4.14.194", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-formatter-summary": "^1.1.0", + "jest": "^29.5.0", + "lodash": "^4.17.21", + "prettier": "^2.8.8", + "typescript": "^5.0.4" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", + "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", + "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", + "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.8.tgz", + "integrity": "sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", + "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", + "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "dev": true, + "optional": true, + "dependencies": { + "any-observable": "^0.3.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "rxjs": { + "optional": true + }, + "zen-observable": { + "optional": true + } + } + }, + "node_modules/@samverschueren/stream-to-observable/node_modules/any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sindresorhus/is": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", + "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "optional": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true, + "optional": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.11", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", + "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "optional": true + }, + "node_modules/@types/node": { + "version": "20.11.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.0.tgz", + "integrity": "sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "optional": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "optional": true + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aggregate-error/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "optional": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-observable": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.5.1.tgz", + "integrity": "sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "peerDependenciesMeta": { + "rxjs": { + "optional": true + }, + "zen-observable": { + "optional": true + } + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true, + "optional": true + }, + "node_modules/cacheable-lookup": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", + "dev": true, + "optional": true, + "dependencies": { + "@types/keyv": "^3.1.1", + "keyv": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "optional": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "optional": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "optional": true + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "optional": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "dev": true, + "optional": true, + "dependencies": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "optional": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "optional": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "optional": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "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/core-js": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz", + "integrity": "sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", + "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true, + "optional": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "optional": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", + "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", + "dev": true, + "optional": true, + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "optional": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "optional": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true, + "optional": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.630", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", + "integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==", + "dev": true + }, + "node_modules/elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-formatter-summary": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-formatter-summary/-/eslint-formatter-summary-1.1.0.tgz", + "integrity": "sha512-teOh471ZYeEShXhBFb16X87buUjNZa2TMNn3CSf//DIKLNneqbk7u5i9hDDiIaQVvZbBXJHkgYxj8urcNKWbXw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "core-js": "^3.9.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "np": "^7.4.0" + } + }, + "node_modules/eslint-formatter-summary/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint-formatter-summary/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint-formatter-summary/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint-formatter-summary/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint-formatter-summary/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-formatter-summary/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "optional": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-url-from-git": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", + "integrity": "sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==", + "dev": true, + "optional": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "1.3.7" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", + "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", + "dev": true, + "optional": true, + "dependencies": { + "@sindresorhus/is": "^2.0.0", + "@szmarczak/http-timer": "^4.0.0", + "@types/cacheable-request": "^6.0.1", + "cacheable-lookup": "^2.0.0", + "cacheable-request": "^7.0.1", + "decompress-response": "^5.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^5.0.0", + "lowercase-keys": "^2.0.0", + "mimic-response": "^2.1.0", + "p-cancelable": "^2.0.0", + "p-event": "^4.0.0", + "responselike": "^2.0.0", + "to-readable-stream": "^2.0.0", + "type-fest": "^0.10.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got/node_modules/type-fest": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", + "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "optional": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "optional": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true, + "optional": true + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer-autosubmit-prompt": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz", + "integrity": "sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^2.4.1", + "inquirer": "^6.2.1", + "rxjs": "^6.3.3" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "optional": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true, + "optional": true + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true, + "optional": true + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "optional": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "optional": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "optional": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer-autosubmit-prompt/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "optional": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "optional": true + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "optional": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "optional": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "optional": true, + "dependencies": { + "symbol-observable": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-observable/node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "optional": true + }, + "node_modules/is-scoped": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", + "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", + "dev": true, + "optional": true, + "dependencies": { + "scoped-regex": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "optional": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true, + "optional": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/issue-regex": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/issue-regex/-/issue-regex-3.1.0.tgz", + "integrity": "sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "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.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@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.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@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.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "optional": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "optional": true, + "dependencies": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/listr-input": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/listr-input/-/listr-input-0.2.1.tgz", + "integrity": "sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==", + "dev": true, + "optional": true, + "dependencies": { + "inquirer": "^7.0.0", + "inquirer-autosubmit-prompt": "^0.2.0", + "rxjs": "^6.5.3", + "through": "^2.3.8" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "listr": "^0.14.2" + } + }, + "node_modules/listr-update-renderer/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "optional": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "optional": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "optional": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true, + "optional": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", + "dev": true, + "optional": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "optional": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "optional": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "optional": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "optional": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "optional": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "optional": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "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/new-github-release-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-1.0.0.tgz", + "integrity": "sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A==", + "dev": true, + "optional": true, + "dependencies": { + "type-fest": "^0.4.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/new-github-release-url/node_modules/type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "optional": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/np": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/np/-/np-7.7.0.tgz", + "integrity": "sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q==", + "dev": true, + "optional": true, + "dependencies": { + "@samverschueren/stream-to-observable": "^0.3.1", + "any-observable": "^0.5.1", + "async-exit-hook": "^2.0.1", + "chalk": "^4.1.0", + "cosmiconfig": "^7.0.0", + "del": "^6.0.0", + "escape-goat": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "execa": "^5.0.0", + "github-url-from-git": "^1.5.0", + "has-yarn": "^2.1.0", + "hosted-git-info": "^3.0.7", + "ignore-walk": "^3.0.3", + "import-local": "^3.0.2", + "inquirer": "^7.3.3", + "is-installed-globally": "^0.3.2", + "is-interactive": "^1.0.0", + "is-scoped": "^2.1.0", + "issue-regex": "^3.1.0", + "listr": "^0.14.3", + "listr-input": "^0.2.1", + "log-symbols": "^4.0.0", + "meow": "^8.1.0", + "minimatch": "^3.0.4", + "new-github-release-url": "^1.0.0", + "npm-name": "^6.0.1", + "onetime": "^5.1.2", + "open": "^7.3.0", + "ow": "^0.21.0", + "p-memoize": "^4.0.1", + "p-timeout": "^4.1.0", + "pkg-dir": "^5.0.0", + "read-pkg-up": "^7.0.1", + "rxjs": "^6.6.3", + "semver": "^7.3.4", + "split": "^1.0.1", + "symbol-observable": "^3.0.0", + "terminal-link": "^2.1.1", + "update-notifier": "^5.0.1" + }, + "bin": { + "np": "source/cli.js" + }, + "engines": { + "git": ">=2.11.0", + "node": ">=10", + "npm": ">=6.8.0", + "yarn": ">=1.7.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/np?sponsor=1" + } + }, + "node_modules/np/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/np/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/np/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/np/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/np/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/np/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/np/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/np/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "optional": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/np/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/np/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/np/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + }, + "node_modules/npm-name": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-6.0.1.tgz", + "integrity": "sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw==", + "dev": true, + "optional": true, + "dependencies": { + "got": "^10.6.0", + "is-scoped": "^2.1.0", + "is-url-superb": "^4.0.0", + "lodash.zip": "^4.2.0", + "org-regex": "^1.0.0", + "p-map": "^3.0.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.1.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-name/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "optional": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/org-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/org-regex/-/org-regex-1.0.0.tgz", + "integrity": "sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ow": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.21.0.tgz", + "integrity": "sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw==", + "dev": true, + "optional": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^0.20.2", + "vali-date": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ow/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/ow/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "optional": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-event/node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "optional": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-memoize": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-4.0.4.tgz", + "integrity": "sha512-ijdh0DP4Mk6J4FXlOM6vPPoCjPytcEseW8p/k5SDTSSfGV3E9bpt9Yzfifvzp6iohIieoLTkXRb32OWV0fB2Lw==", + "dev": true, + "optional": true, + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.0.0", + "p-settle": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/p-memoize?sponsor=1" + } + }, + "node_modules/p-memoize/node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-reflect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", + "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-settle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", + "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", + "dev": true, + "optional": true, + "dependencies": { + "p-limit": "^2.2.2", + "p-reflect": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-settle/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "optional": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "optional": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "optional": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "optional": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "optional": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json/node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true, + "optional": true + }, + "node_modules/package-json/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "optional": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "optional": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/package-json/node_modules/got/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/package-json/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true, + "optional": true + }, + "node_modules/package-json/node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "optional": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/package-json/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "optional": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/package-json/node_modules/responselike/node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/package-json/node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "optional": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pupa/node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "optional": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "optional": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "optional": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "optional": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "optional": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "optional": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "optional": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "optional": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "optional": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "optional": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "optional": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "optional": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "optional": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "node_modules/scoped-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", + "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "optional": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "optional": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true, + "optional": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "optional": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true, + "optional": true + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "optional": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "optional": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", + "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "optional": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "optional": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", + "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "optional": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "optional": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "optional": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/update-notifier/node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "optional": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "optional": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "optional": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dev": true, + "optional": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "optional": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "optional": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "optional": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c228d29 --- /dev/null +++ b/package.json @@ -0,0 +1,47 @@ +{ + "name": "@fieldguide/pipeline", + "description": "A simple Javascript library for building synchronous process pipelines", + "version": "1.0.0", + "scripts": { + "build": "tsc", + "eslint": "eslint --ext .js,.ts --cache --cache-location=node_modules/.cache/eslint --cache-strategy content .", + "eslint:fix": "npm run eslint -- --fix", + "prettier": "prettier --check .", + "prettier:fix": "prettier --write .", + "test": "NODE_PATH=./src jest -o --watch --runInBand --detectOpenHandles", + "test:ci": "NODE_PATH=./src jest" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fieldguide/pipeline.git" + }, + "keywords": [ + "javascript", + "pipeline", + "synchronous", + "chain", + "processing" + ], + "author": "Fieldguide", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/fieldguide/pipeline/issues" + }, + "homepage": "https://github.com/fieldguide/pipeline#readme", + "devDependencies": { + "@babel/core": "^7.21.8", + "@babel/preset-env": "^7.21.5", + "@babel/preset-typescript": "^7.21.5", + "@types/jest": "^29.5.1", + "@types/lodash": "^4.14.194", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "eslint-formatter-summary": "^1.1.0", + "jest": "^29.5.0", + "lodash": "^4.17.21", + "prettier": "^2.8.8", + "typescript": "^5.0.4" + } +} diff --git a/src/__mocks__/TestPipeline.ts b/src/__mocks__/TestPipeline.ts new file mode 100644 index 0000000..8ce9775 --- /dev/null +++ b/src/__mocks__/TestPipeline.ts @@ -0,0 +1,101 @@ +import { last } from "lodash"; +import { + PipelineInitializer, + PipelineResultValidator, + PipelineStage, +} from "../types"; + +export interface TestPipelineArguments { + increment: number; +} + +export interface TestPipelineContext { + sums: number[]; +} + +export interface TestPipelineResults { + sum: number; + history: number[]; +} + +export type TestStage = PipelineStage< + TestPipelineArguments, + TestPipelineContext, + TestPipelineResults +>; + +/** + * A stage to set up the test pipeline + */ +export const initializer: PipelineInitializer = () => { + return { + sums: [0], + }; +}; + +/** + * The core step in the test pipeline which adds the iterator (can be included more than once) + */ +export const additionStage: TestStage = (context, metadata) => { + const lastSum = last(context.sums); + + if (lastSum === undefined) { + throw Error("No previous sum recorded!"); + } + + // store the next sum + const newSum = lastSum + metadata.arguments.increment; + context.sums.push(newSum); +}; + +/** + * A stage that returns the sum for the result (result part 1) + */ +export const returnSumResult: TestStage = (context) => { + const lastSum = last(context.sums); + + if (lastSum === undefined) { + throw Error("No previous sum recorded!"); + } + + return { sum: lastSum }; +}; + +/** + * The stage that returns the history result (result part 2) + */ +export const returnHistoryResult: TestStage = (context) => { + return { + history: context.sums, + }; +}; + +/** + * A stage that throws an error + */ +export const errorStage: TestStage = () => { + throw Error("This stage throws an error!"); +}; + +/** + * A results validator for the test pipeline + */ +export const testPipelineResultValidator: PipelineResultValidator< + TestPipelineResults +> = (results) => { + // false if sum is not a number + if (typeof results.sum !== "number") { + return false; + } + + // false if history is not an array + if (!Array.isArray(results.history)) { + return false; + } + + // return true only if all history types are numeric + return ( + 0 === + results.history.map((h) => typeof h).filter((t) => t !== "number").length + ); +}; diff --git a/src/__tests__/buildPipeline.test.ts b/src/__tests__/buildPipeline.test.ts new file mode 100644 index 0000000..28cbfc9 --- /dev/null +++ b/src/__tests__/buildPipeline.test.ts @@ -0,0 +1,98 @@ +import { noop } from "lodash"; +import { + TestPipelineArguments, + TestPipelineContext, + TestPipelineResults, + TestStage, + additionStage, + errorStage, + initializer, + returnHistoryResult, + testPipelineResultValidator, +} from "../__mocks__/TestPipeline"; +import { buildPipeline } from "../buildPipeline"; +import { PipelineError } from "../error/PipelineError"; +import { returnSumResult } from "./../__mocks__/TestPipeline"; +import { PipelineMiddleware } from "./../types"; + +const INCREMENT = 5; + +const successfulStages: TestStage[] = [ + additionStage, + additionStage, + returnSumResult, + returnHistoryResult, +]; + +const partialResultsStages: TestStage[] = [additionStage, returnSumResult]; + +const errorStages: TestStage[] = [errorStage, returnHistoryResult]; + +describe("buildPipeline", () => { + it("should produce a result when successful", async () => { + const results = await runPipelineForStages(successfulStages); + + expect(results).toEqual({ sum: 10, history: [0, 5, 10] }); + }); + + it("should run any specified middleware", async () => { + const testMiddleware: PipelineMiddleware = { + onStageStart: jest.fn(noop), + onStageComplete: jest.fn(noop), + }; + + const partialMiddleware: PipelineMiddleware = { + onStageComplete: jest.fn(noop), + }; + + await runPipelineForStages(successfulStages, [ + testMiddleware, + partialMiddleware, + ]); + + expect(testMiddleware.onStageStart).toHaveBeenCalledTimes( + successfulStages.length + ); + expect(testMiddleware.onStageComplete).toHaveBeenCalledTimes( + successfulStages.length + ); + expect(partialMiddleware.onStageComplete).toHaveBeenCalledTimes( + successfulStages.length + ); + }); + + it("should throw an error if only partial results are returned", async () => { + const test = () => runPipelineForStages(partialResultsStages); + + await expect(test).rejects.toThrow( + "Results from pipeline failed validation" + ); + await expect(test).rejects.toThrow(PipelineError); + }); + + it("should throw an error if a stage throws an error", async () => { + const test = () => runPipelineForStages(errorStages); + + await expect(test).rejects.toThrow("This stage throws an error!"); + await expect(test).rejects.toThrow(PipelineError); + }); +}); + +function runPipelineForStages( + stages: TestStage[], + middleware: PipelineMiddleware[] = [] +) { + const pipeline = buildPipeline< + TestPipelineArguments, + TestPipelineContext, + TestPipelineResults + >({ + name: "TestPipeline", + initializer, + stages, + resultsValidator: testPipelineResultValidator, + middleware, + }); + + return pipeline({ increment: INCREMENT }); +} diff --git a/src/buildPipeline.ts b/src/buildPipeline.ts new file mode 100644 index 0000000..4d2fc85 --- /dev/null +++ b/src/buildPipeline.ts @@ -0,0 +1,119 @@ +import { compact, merge } from "lodash"; +import { PipelineError } from "./error/PipelineError"; +import { + Pipeline, + PipelineInitializer, + PipelineMetadata, + PipelineMiddleware, + PipelineMiddlewareEventType, + PipelineMiddlewarePayload, + PipelineResultValidator, + PipelineStage, +} from "./types"; + +interface BuildPipelineInput< + A extends object, + C extends object, + R extends object +> { + name: string; + initializer: PipelineInitializer; + stages: PipelineStage[]; + resultsValidator: PipelineResultValidator; + middleware?: PipelineMiddleware[]; +} + +/** + * Generic pipeline constructor that takes in configuration information and returns a method to execute the pipeline + */ +export function buildPipeline< + A extends object, + C extends object, + R extends object +>({ + name, + initializer, + stages, + resultsValidator, + middleware = [], +}: BuildPipelineInput): Pipeline { + return async (args) => { + const stageNames = stages.map((s) => s.name); + + const metadata: PipelineMetadata = { + name, + arguments: args, + }; + + const context = await initializer(args); + + const results: Partial = {}; + + const buildMiddlewarePayload = ( + currentStage: string + ): PipelineMiddlewarePayload => ({ + context, + metadata, + results, + stageNames, + currentStage, + }); + + try { + for (const stage of stages) { + await executeMiddlewareForEvent( + "onStageStart", + middleware, + buildMiddlewarePayload(stage.name) + ); + + const stageResults = await stage(context, metadata); + + // if the stage returns results, merge them onto the results object + if (stageResults) { + merge(results, stageResults); + } + + await executeMiddlewareForEvent( + "onStageComplete", + [...middleware].reverse(), + buildMiddlewarePayload(stage.name) + ); + } + + if (!isValidResult(results, resultsValidator)) { + throw new Error("Results from pipeline failed validation"); + } + + return results; + } catch (e) { + throw new PipelineError(`${String(e)}`, context, results, metadata, e); + } + }; +} + +async function executeMiddlewareForEvent< + A extends object, + C extends object, + R extends object +>( + event: PipelineMiddlewareEventType, + middleware: PipelineMiddleware[], + payload: PipelineMiddlewarePayload +) { + const handlers = compact(middleware.map((m) => m[event])); + + for (const handler of handlers) { + await handler(payload); + } +} + +/** + * Wraps the provided validator in a type guard + */ +function isValidResult( + result: Partial, + validator: PipelineResultValidator +): result is R { + return validator(result); +} diff --git a/src/error/PipelineError.ts b/src/error/PipelineError.ts new file mode 100644 index 0000000..78f0a49 --- /dev/null +++ b/src/error/PipelineError.ts @@ -0,0 +1,42 @@ +import { PipelineMetadata } from "../types"; + +/** + * An error when executing a pipeline. + */ +export class PipelineError< + A extends object, + C extends object, + R extends object +> extends Error { + /** + * Retrieve data from the pipeline execution that caused this error. This includes the Context, Metadata, and any Results from the pipeline so far. + */ + public getPipelineData() { + return this.pipelineData; + } + + private pipelineData: { + context: C; + results: Partial; + metadata: PipelineMetadata; + }; + + constructor( + message: string, + protected pipelineContext: C, + protected pipelineResults: Partial, + protected pipelineMetadata: PipelineMetadata, + /** A throwable that caused this exception */ + public readonly cause?: unknown + ) { + // prepend the message with the pipeline name + super(`[${pipelineMetadata.name}] ${message}`); + + // store pipeline data so it can be caught/retrieved later + this.pipelineData = { + context: pipelineContext, + metadata: pipelineMetadata, + results: pipelineResults, + }; + } +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..dc77c65 --- /dev/null +++ b/src/index.ts @@ -0,0 +1 @@ +export { buildPipeline } from "./buildPipeline"; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..84edb8d --- /dev/null +++ b/src/types.ts @@ -0,0 +1,87 @@ +/** + * A pipeline is an executable that takes in arguments and produces results + */ +export type Pipeline = ( + args: A +) => Promise; + +/** + * A pipeline stage takes in the context, does processing, and optionally returns a partial result that gets merged with results from other stages + */ +export type PipelineStage< + A extends object, + C extends object, + R extends object +> = ( + context: C, + metadata: PipelineMetadata +) => Promise> | Partial | Promise | void; + +/** + * A method that initializes the pipeline by creating the context object that gets passed to each stage. Note that because the context extends PipelineContext, this method must also include the pipeline name and arguments when constructing the context object. + * + * Note that the A type (Arguments) is optional if the arguments are not needed to initialize the context. + */ +export type PipelineInitializer = ( + args: A +) => Promise | C; + +/** + * Validates that results at the conclusion of the pipeline's execution are complete + */ +export type PipelineResultValidator = ( + results: Partial +) => boolean; + +/** + * Basic metadata about a pipeline execution + */ +export interface PipelineMetadata { + arguments: Readonly; + name: Readonly; +} + +interface BasePipelineMiddleware< + A extends object = object, + C extends object = object, + R extends object = object +> { + /** Runs before a pipeline stage is executed */ + onStageStart: PipelineMiddlewareCallable; + /** Runs after a pipeline stage is executing and includes results returned by that stage */ + onStageComplete: PipelineMiddlewareCallable; +} + +/** + * Event-based middleware to run around each pipeline stage + */ +export type PipelineMiddleware = Partial; + +/** + * The events that are supported by pipeline middleware + */ +export type PipelineMiddlewareEventType = keyof PipelineMiddleware; + +/** + * Functions that can be assigned to each event in the middleware + */ +export type PipelineMiddlewareCallable< + A extends object, + C extends object, + R extends object +> = (input: PipelineMiddlewarePayload) => Promise | void; + +/** + * The payload that gets passed to each `PipelineMiddlewareCallable` + */ +export interface PipelineMiddlewarePayload< + A extends object, + C extends object, + R extends object +> { + context: C; + metadata: PipelineMetadata; + results: Readonly>; + stageNames: string[]; + currentStage: string; +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..eeb6a5c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "CommonJS", + "declaration": true, + "outDir": "./build", + "strict": true + }, + "include": ["src"], + "exclude": ["node_modules", "**/__tests__/*"] +} From e5fbc9a27948d685000ebec49437f0862d9d25e4 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Tue, 16 Jan 2024 14:02:01 -0500 Subject: [PATCH 02/27] base code --- .eslintrc.js | 52 ++++++++++++++++ package.json | 2 +- src/__tests__/buildPipeline.test.ts | 90 +++++++++++++++++----------- src/buildPipeline.ts | 11 +++- src/middleware/logStageMiddleware.ts | 15 +++++ src/types.ts | 17 ++++-- tsconfig.json | 3 +- 7 files changed, 146 insertions(+), 44 deletions(-) create mode 100644 .eslintrc.js create mode 100644 src/middleware/logStageMiddleware.ts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..aec3be9 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,52 @@ +module.exports = { + root: true, + parser: "@typescript-eslint/parser", + plugins: ["@typescript-eslint"], + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "prettier", + ], + env: { + node: true, + }, + settings: { + "import/resolver": { + typescript: {}, // this loads /tsconfig.json to eslint + }, + }, + overrides: [ + { + files: ["**/*.ts?(x)"], + parserOptions: { + project: ["./tsconfig.json"], + tsconfigRootDir: __dirname, + }, + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking", + "prettier", + ], + rules: { + "@typescript-eslint/no-shadow": "warn", + "@typescript-eslint/no-unsafe-argument": "warn", + "@typescript-eslint/no-unsafe-assignment": "warn", + "@typescript-eslint/no-unsafe-call": "warn", + "@typescript-eslint/no-unsafe-member-access": "warn", + "@typescript-eslint/no-unsafe-return": "warn", + curly: "error", + }, + }, + { + files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(test).[jt]s?(x)"], + rules: { + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/unbound-method": "off", + }, + }, + ], +}; diff --git a/package.json b/package.json index c228d29..4253d97 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fieldguide/pipeline", - "description": "A simple Javascript library for building synchronous process pipelines", + "description": "A toolkit to easily build synchronous process pipelines in TypeScript/JavaScript", "version": "1.0.0", "scripts": { "build": "tsc", diff --git a/src/__tests__/buildPipeline.test.ts b/src/__tests__/buildPipeline.test.ts index 28cbfc9..bad01e8 100644 --- a/src/__tests__/buildPipeline.test.ts +++ b/src/__tests__/buildPipeline.test.ts @@ -1,4 +1,3 @@ -import { noop } from "lodash"; import { TestPipelineArguments, TestPipelineContext, @@ -13,7 +12,7 @@ import { import { buildPipeline } from "../buildPipeline"; import { PipelineError } from "../error/PipelineError"; import { returnSumResult } from "./../__mocks__/TestPipeline"; -import { PipelineMiddleware } from "./../types"; +import { PipelineMiddleware, PipelineMiddlewareFactory } from "./../types"; const INCREMENT = 5; @@ -29,52 +28,73 @@ const partialResultsStages: TestStage[] = [additionStage, returnSumResult]; const errorStages: TestStage[] = [errorStage, returnHistoryResult]; describe("buildPipeline", () => { - it("should produce a result when successful", async () => { - const results = await runPipelineForStages(successfulStages); + describe("when running a simple pipeline", () => { + it("should produce a result when successful", async () => { + const results = await runPipelineForStages(successfulStages); - expect(results).toEqual({ sum: 10, history: [0, 5, 10] }); + expect(results).toEqual({ sum: 10, history: [0, 5, 10] }); + }); + + it("should throw an error if only partial results are returned", async () => { + const test = () => runPipelineForStages(partialResultsStages); + + await expect(test).rejects.toThrow( + "Results from pipeline failed validation" + ); + await expect(test).rejects.toThrow(PipelineError); + }); + + it("should throw an error if a stage throws an error", async () => { + const test = () => runPipelineForStages(errorStages); + + await expect(test).rejects.toThrow("This stage throws an error!"); + await expect(test).rejects.toThrow(PipelineError); + }); }); - it("should run any specified middleware", async () => { + describe("when using middleware", () => { + const testStart = jest.fn(); + const testComplete = jest.fn(); const testMiddleware: PipelineMiddleware = { - onStageStart: jest.fn(noop), - onStageComplete: jest.fn(noop), + onStageStart: testStart, + onStageComplete: testComplete, }; + const partialComplete = jest.fn(); const partialMiddleware: PipelineMiddleware = { - onStageComplete: jest.fn(noop), + onStageComplete: partialComplete, }; - await runPipelineForStages(successfulStages, [ - testMiddleware, - partialMiddleware, - ]); - - expect(testMiddleware.onStageStart).toHaveBeenCalledTimes( - successfulStages.length - ); - expect(testMiddleware.onStageComplete).toHaveBeenCalledTimes( - successfulStages.length - ); - expect(partialMiddleware.onStageComplete).toHaveBeenCalledTimes( - successfulStages.length - ); - }); + const factoryStart = jest.fn(); + const middlewareFactory: PipelineMiddlewareFactory = () => ({ + onStageStart: factoryStart, + }); - it("should throw an error if only partial results are returned", async () => { - const test = () => runPipelineForStages(partialResultsStages); + beforeEach(() => { + testStart.mockClear(); + testComplete.mockClear(); + partialComplete.mockClear(); + factoryStart.mockClear(); + }); - await expect(test).rejects.toThrow( - "Results from pipeline failed validation" - ); - await expect(test).rejects.toThrow(PipelineError); - }); + it("should run the test middleware", async () => { + await runPipelineForStages(successfulStages, [testMiddleware]); + + expect(testStart).toHaveBeenCalledTimes(successfulStages.length); + expect(testComplete).toHaveBeenCalledTimes(successfulStages.length); + }); + + it("should run the partial middleware", async () => { + await runPipelineForStages(successfulStages, [partialMiddleware]); + + expect(partialComplete).toHaveBeenCalledTimes(successfulStages.length); + }); - it("should throw an error if a stage throws an error", async () => { - const test = () => runPipelineForStages(errorStages); + it("should run the middleware factory", async () => { + await runPipelineForStages(successfulStages, [middlewareFactory]); - await expect(test).rejects.toThrow("This stage throws an error!"); - await expect(test).rejects.toThrow(PipelineError); + expect(factoryStart).toHaveBeenCalledTimes(successfulStages.length); + }); }); }); diff --git a/src/buildPipeline.ts b/src/buildPipeline.ts index 4d2fc85..38c124d 100644 --- a/src/buildPipeline.ts +++ b/src/buildPipeline.ts @@ -5,6 +5,7 @@ import { PipelineInitializer, PipelineMetadata, PipelineMiddleware, + PipelineMiddlewareCallable, PipelineMiddlewareEventType, PipelineMiddlewarePayload, PipelineResultValidator, @@ -101,7 +102,15 @@ async function executeMiddlewareForEvent< middleware: PipelineMiddleware[], payload: PipelineMiddlewarePayload ) { - const handlers = compact(middleware.map((m) => m[event])); + const handlers = compact>( + middleware.map((m) => { + if (typeof m === "function") { + return m()[event]; + } else { + return m[event]; + } + }) + ); for (const handler of handlers) { await handler(payload); diff --git a/src/middleware/logStageMiddleware.ts b/src/middleware/logStageMiddleware.ts new file mode 100644 index 0000000..97c48c2 --- /dev/null +++ b/src/middleware/logStageMiddleware.ts @@ -0,0 +1,15 @@ +import { PipelineMiddlewareFactory } from "../types"; + +/** + * A simple implementation of Pipeline middleware that logs when each stage begins and finishes + */ +export const logStageMiddleware: PipelineMiddlewareFactory = ( + logger: (msg: string) => void = console.log +) => ({ + onStageStart: ({ metadata, currentStage }) => { + logger(`[${metadata.name}] starting ${currentStage}...`); + }, + onStageComplete: ({ metadata, currentStage }) => { + logger(`[${metadata.name}] ${currentStage} completed`); + }, +}); diff --git a/src/types.ts b/src/types.ts index 84edb8d..805c098 100644 --- a/src/types.ts +++ b/src/types.ts @@ -55,20 +55,27 @@ interface BasePipelineMiddleware< /** * Event-based middleware to run around each pipeline stage */ -export type PipelineMiddleware = Partial; +export type PipelineMiddlewareFactory = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ...args: any[] +) => Partial; + +export type PipelineMiddleware = + | Partial + | PipelineMiddlewareFactory; /** * The events that are supported by pipeline middleware */ -export type PipelineMiddlewareEventType = keyof PipelineMiddleware; +export type PipelineMiddlewareEventType = keyof BasePipelineMiddleware; /** * Functions that can be assigned to each event in the middleware */ export type PipelineMiddlewareCallable< - A extends object, - C extends object, - R extends object + A extends object = object, + C extends object = object, + R extends object = object > = (input: PipelineMiddlewarePayload) => Promise | void; /** diff --git a/tsconfig.json b/tsconfig.json index eeb6a5c..fe86b1e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,5 @@ "outDir": "./build", "strict": true }, - "include": ["src"], - "exclude": ["node_modules", "**/__tests__/*"] + "include": ["src"] } From bb00ec778bc6401d476bb15a952b89e3a37dc594 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Wed, 17 Jan 2024 22:58:44 -0500 Subject: [PATCH 03/27] update try/catch --- src/buildPipeline.ts | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/buildPipeline.ts b/src/buildPipeline.ts index 38c124d..d58e552 100644 --- a/src/buildPipeline.ts +++ b/src/buildPipeline.ts @@ -39,28 +39,32 @@ export function buildPipeline< middleware = [], }: BuildPipelineInput): Pipeline { return async (args) => { - const stageNames = stages.map((s) => s.name); + const results: Partial = {}; + + /** A context (or undefined) value used for catching/reporting errors */ + let maybeContext: C | undefined = undefined; const metadata: PipelineMetadata = { name, arguments: args, }; - const context = await initializer(args); + try { + const stageNames = stages.map((s) => s.name); - const results: Partial = {}; + const context = await initializer(args); + maybeContext = context; - const buildMiddlewarePayload = ( - currentStage: string - ): PipelineMiddlewarePayload => ({ - context, - metadata, - results, - stageNames, - currentStage, - }); + const buildMiddlewarePayload = ( + currentStage: string + ): PipelineMiddlewarePayload => ({ + context, + metadata, + results, + stageNames, + currentStage, + }); - try { for (const stage of stages) { await executeMiddlewareForEvent( "onStageStart", @@ -88,7 +92,13 @@ export function buildPipeline< return results; } catch (e) { - throw new PipelineError(`${String(e)}`, context, results, metadata, e); + throw new PipelineError( + `${String(e)}`, + maybeContext, + results, + metadata, + e + ); } }; } From 668dbdbcecaf65cb39d6dc3040630c2a2ce50217 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Wed, 17 Jan 2024 22:58:52 -0500 Subject: [PATCH 04/27] add documentation --- .vscode/settings.json | 3 + README.md | 116 ++++++++++++++++- docs/cases/data-export-pipeline.md | 198 +++++++++++++++++++++++++++++ docs/middleware.png | Bin 0 -> 97874 bytes docs/pipeline-overview.png | Bin 0 -> 243936 bytes src/error/PipelineError.ts | 2 +- 6 files changed, 317 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 docs/cases/data-export-pipeline.md create mode 100644 docs/middleware.png create mode 100644 docs/pipeline-overview.png diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f1e546f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "cSpell.words": ["fieldguide"] +} diff --git a/README.md b/README.md index 579e5c1..e9947ec 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,117 @@ # Pipeline -A toolkit to easily build synchronous process pipelines in TypeScript/JavaScript +A type-safe toolkit to easily compose synchronous process chains in TypeScript/JavaScript + +## Table of Contents + +- [Table of Contents](#table-of-contents) +- [Overview](#overview) +- [Installation](#installation) +- [Types](#types) +- [Builder](#builder) +- [Initializer](#initializer) +- [Stages](#stages) + - [Stage Arguments](#stage-arguments) + - [Stage Results](#stage-results) +- [Results Validator](#results-validator) +- [Middleware](#middleware) +- [Error Handling](#error-handling) +- [Example Use Cases](#example-use-cases) + +## Overview + +This library seeks to provide a structure to break down large multi-step process chains in order to make them composable and testable. + +![Pipeline overview diagram](./docs/pipeline-overview.png) + +## Installation + +Install the package with your favorite package manager: + +``` +npm install @fieldguide/pipeline +``` + +## Types + +There are three core types to consider when constructing and using a pipeline: + +1. **Arguments** represent the data that gets passed into the pipeline at runtime +2. **Context** represents the internal data that is shared with each pipeline stage +3. **Results** represent the data that is output from a pipeline execution + +It is common to see these types abbreviated as `A`, `C`, and `R` respectively. + +## Builder + +The [pipeline builder](./src/buildPipeline.ts) is a factory that accepts the individual pieces of a pipeline and constructs a single callable of the `Pipeline` type: + +```typescript +export type Pipeline = ( + args: A +) => Promise; +``` + +Notice that the callable takes a single arguments object (`A`) and outputs a promise representing the results object (`R`). The execution context (`C`) is internal to the pipeline stages, so it is not represented in the pipeline callable constructed by the builder. + +## Initializer + +The **Initializer** is a method that takes in the pipeline's arguments and produces a Context object. The context is then passed as an argument into each stage. + +> [!NOTE] +> The initializer should create the "empty state" of the context object. It is recommended to initialize empty arrays, sets, maps, and objects within the initializer that stages can add data to or manipulate later. + +## Stages + +**Stages** are the independent steps in the process chain. They are processed synchronously (one at a time, in order) until the end of the chain is reached. + +### Stage Arguments + +The following arguments are provided to a stage when it is executed: + +| Argument | Description | +| ---------- | ------------------------------------------------------------------------------------------------------------------ | +| `context` | The execution context object setup by the initializer and manipulated by any previous stages | +| `metadata` | The name of the pipeline (helpful for logging/metrics) and the initial arguments provided to the pipeline callable | + +### Stage Results + +Each stage can return a partial results object for the pipeline. These results are collected and merged as each stage is processed. If a later stage specifies the same key in the results object as an earlier stage, the later stage's result will overwrite the earlier result. + +## Results Validator + +The **Results Validator** ensures that the pipeline has fulfilled the interface specified for its result. Since each stage returns a _partial_ result set, this method verifies that the entire result has been supplied. + +## Middleware + +If **Middleware** is specified, it will be run on the specified stage lifecycle event(s) for each stage in the pipeline. + +| Stage Event | Description | +| ----------------- | ---------------------------------- | +| `onStageStart` | Runs before each stage is executed | +| `onStageComplete` | Runs after each stage is executed | + +Middleware can be specified as an object with one or more event keys or as a factory which returns an object with one or more event keys. + +A middleware callable is provided the following attributes: + +| Parameter | Description | +| -------------- | ----------------------------------------------------------------------------- | +| `context` | The pipeline execution context object | +| `metadata` | The pipeline's metadata (name and runtime arguments) | +| `results` | A read-only set of results returned by stages so far | +| `stageNames` | An array of the names of the methods that make up the current pipeline stages | +| `currentStage` | The name of the current pipeline stage | + +> [!NOTE] +> See the [LogStageMiddleware](./src/middleware/logStageMiddleware.ts) for a simple middleware implementation. + +## Error Handling + +When an error occurs during pipeline execution, an instance of [PipelineError](./src/error/PipelineError.ts) is thrown. + +In order to decorate or extend pipeline error handling, use a standard try/catch block around pipeline invocation. + +## Example Use Cases + +1. Data Export Pipeline diff --git a/docs/cases/data-export-pipeline.md b/docs/cases/data-export-pipeline.md new file mode 100644 index 0000000..61fb34c --- /dev/null +++ b/docs/cases/data-export-pipeline.md @@ -0,0 +1,198 @@ +# Data Export Pipeline Use Case + +## Table of Contents + +- [Table of Contents](#table-of-contents) +- [Summary](#summary) +- [Core Types](#core-types) +- [Initializer](#initializer) +- [Stages](#stages) +- [Results Validator](#results-validator) +- [Build \& Run](#build--run) + +## Summary + +Imagine a process where the application needs to download and export employee records for a given company. This involves: + +1. Querying the database for the list of employees of the given company +2. Downloading a profile document for each employee that is stored on cloud storage (e.g. Amazon S3) +3. Exporting a manifest CSV where each row contains data about an employee and the filename of their profile document +4. Archive the downloaded files and manifest into a single ZIP file +5. Upload the ZIP file to S3 +6. Output the URL to the uploaded ZIP file + +It is easy to see how the above ordered steps can translate to a pipeline. + +## Core Types + +The core types (arguments, context, and results) will help shape the various pieces of the pipeline. + +```typescript +interface EmployeePipelineArguments { + /** The company ID to export employee data for **/ + companyId: number; + /** Whether or not terminated employees should be included in the export **/ + includeTerminatedEmployees: boolean; +} + +interface EmployeePipelineContext { + /** A map of employee ID to their profile filename **/ + employeeFileMap: Map; + /** The data about each employee **/ + employeeData: Employee[]; + /** The local location of the employee list to include in the archive */ + manifestFilename?: string; + /** The local location of the zip file to upload and make available via a cloud url */ + zipFilename?: string; +} + +interface EmployeePipelineResults { + /** The url to the ZIP file that can be downloaded for this export **/ + zipFileUrl: string; + /** The number of employees included in the export **/ + employeeCount: number; +} +``` + +## Initializer + +The initializer builds the `context` object that will be used throughout the pipeline. + +```typescript +const initializer: PipelineInitializer< + EmployeePipelineContext, + EmployeePipelineArguments +> = (args: EmployeePipelineArguments) => { + /* + Do whatever operations are required to fetch the employee data and store + in an `employeeData` variable: + + const employeeData = ... + */ + + return { employeeData, employeeFileMap: new Map() }; +}; +``` + +## Stages + +The stages are each built as independent methods. This means they can be easily unit tested. Variations to this pipelines can be constructed simply by adding, removing, or reordering stages. + +```typescript +type EmployeePipelineStage = PipelineStage< + EmployeePipelineArguments, + EmployeePipelineContext, + EmployeePipelineResults +>; +``` + +```typescript +const getEmployeeCount: EmployeePipelineStage = ({ employeeData }) => { + // return the employee count to the results object + return { employeeCount: employeeData.length }; +}; +``` + +```typescript +const downloadProfile: EmployeePipelineStage = ({ + employeeFileMap, + employeeData, +}) => { + employeeData.forEach((employee) => { + /* + Do operations to fetch the employee profile and store the path to the + local file in `localFilePath` + */ + + employeeFileMap.set(employee.id, localFilePath); + }); +}; +``` + +```typescript +const exportManifest: EmployeePipelineStage = ({ + employeeFileMap, + employeeData, + ...context +}) => { + const data = employeeData.map((employee) => { + return [ + employee.id, + employee.name, + employee.hireDate, + employeeFileMap.get(employee.id), + ]; + }); + + /* + Write the data to a CSV file and store the path to the local csv file in + `filename` + */ + + context.manifestFilename = filename; +}; +``` + +```typescript +const createArchive: EmployeePipelineStage = ({ + manifestFilename, + employeeFileMap, + ...context +}) => { + const files = [manifestFilename, ...employeeFileMap.values()]; + + /* + Do operations to zip the files and store the zip file, the location of + which is in `zipFile` + + const zipFile = ... + */ + + context.zipFilename = zipFile; +}; +``` + +```typescript +const uploadArchive: EmployeePipelineStage = ({ zipFilename }) => { + if (!zipFilename) { + throw new Error("The ZIP archive could not be found"); + } + + /* + Upload the `zipFilename` file to a cloud provider and store the url in + `zipFileUrl` + + const zipFileUrl = ... + */ + + return { zipFileUrl }; +}; +``` + +## Results Validator + +The results validator ensures that a complete result set was returned. + +```typescript +const resultsValidator = ({ + zipFileUrl, + employeeCount, +}: Partial): boolean => { + return typeof zipFileUrl === "string" && typeof employeeCount === "number"; +}; +``` + +## Build & Run + +We can now build and run the pipeline. + +```typescript +const pipeline = buildPipeline({ + name: "EmployeeExport", + initializer, + stages: [getEmployeeCount, downloadProfile, exportManifest, createArchive], + resultsValidator, +}); + +void pipeline({ companyId: 2, includeTerminatedEmployees: false }); +``` diff --git a/docs/middleware.png b/docs/middleware.png new file mode 100644 index 0000000000000000000000000000000000000000..c68ac41c15aed5737df1fe2783a3e34a8d8fa6a3 GIT binary patch literal 97874 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%0APqr^G?0han-7x4c9o1++^Vx`W`0<|QwuCxHW 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 literal 0 HcmV?d00001 diff --git a/docs/pipeline-overview.png b/docs/pipeline-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..1308427e3179ec7dcb1e00a3ad2b0a919d2ebbf3 GIT binary patch literal 243936 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 literal 0 HcmV?d00001 diff --git a/src/error/PipelineError.ts b/src/error/PipelineError.ts index 78f0a49..3a8af77 100644 --- a/src/error/PipelineError.ts +++ b/src/error/PipelineError.ts @@ -23,7 +23,7 @@ export class PipelineError< constructor( message: string, - protected pipelineContext: C, + protected pipelineContext: C | undefined, protected pipelineResults: Partial, protected pipelineMetadata: PipelineMetadata, /** A throwable that caused this exception */ From fb09b412a79647fb6f75fc775f794e2385975f6a Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Wed, 17 Jan 2024 22:59:59 -0500 Subject: [PATCH 05/27] Fix error interface --- src/error/PipelineError.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/error/PipelineError.ts b/src/error/PipelineError.ts index 3a8af77..92993e3 100644 --- a/src/error/PipelineError.ts +++ b/src/error/PipelineError.ts @@ -16,7 +16,7 @@ export class PipelineError< } private pipelineData: { - context: C; + context?: C; results: Partial; metadata: PipelineMetadata; }; From 0a4c5ce2f098be86a2c96f22d529e37b763c9cf5 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Wed, 17 Jan 2024 23:06:03 -0500 Subject: [PATCH 06/27] Remove unnecessary image --- docs/middleware.png | Bin 97874 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/middleware.png diff --git a/docs/middleware.png b/docs/middleware.png deleted file mode 100644 index c68ac41c15aed5737df1fe2783a3e34a8d8fa6a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97874 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%0APqr^G?0han-7x4c9o1++^Vx`W`0<|QwuCxHW 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 From ca00f8c7bbb5230008322de73db10dfbd0197728 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Wed, 17 Jan 2024 23:14:42 -0500 Subject: [PATCH 07/27] Add CI workflow --- .github/workflows/ci.yml | 31 +++++++++++++++++++++++++++++++ .nvmrc | 1 + 2 files changed, 32 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .nvmrc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d417644 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,31 @@ +name: ci +on: + pull_request: + push: + branches: [main] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +jobs: + lint-and-typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version-file: ".nvmrc" + cache: "npm" + - name: Cache node_modules/.cache directory + uses: actions/cache@v3 + with: + path: node_modules/.cache + key: node-modules-dot-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}-${{ github.run_id }} + restore-keys: | + node-modules-dot-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}- + - name: Setup auth for private GH packages + run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.GH_PACKAGES_RO_BOT_TOKEN }}" > ~/.npmrc + - run: npm ci --prefer-offline --no-audit + - run: npm run prettier + - run: npx tsc --noEmit + - run: npm run test:ci + - run: npm run eslint diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..3c03207 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +18 From 643c6b3bfda6c8d0f729785374578509c055b872 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Wed, 17 Jan 2024 23:17:23 -0500 Subject: [PATCH 08/27] Add link to docs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e9947ec..415475e 100644 --- a/README.md +++ b/README.md @@ -114,4 +114,4 @@ In order to decorate or extend pipeline error handling, use a standard try/catch ## Example Use Cases -1. Data Export Pipeline +1. [Data Export Pipeline](./docs/cases/data-export-pipeline.md) From 99ac7ab4b55744e4c2cbcf875e04ccab5867dacd Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:08:44 -0500 Subject: [PATCH 09/27] Update eslint config --- .eslintignore | 1 + .eslintrc.js | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index aec3be9..58208cd 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -10,11 +10,6 @@ module.exports = { env: { node: true, }, - settings: { - "import/resolver": { - typescript: {}, // this loads /tsconfig.json to eslint - }, - }, overrides: [ { files: ["**/*.ts?(x)"], From 9073c954a40b55a56845ab7f42579b5264bcca3c Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:08:52 -0500 Subject: [PATCH 10/27] Update prettier config --- .prettierignore | 3 +++ .prettierrc | 1 + 2 files changed, 4 insertions(+) create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7fda1e4 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +.github/*.md +.vscode +build \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/.prettierrc @@ -0,0 +1 @@ +{} From 02d4b9d75f093124c86bfbabf67f65c7a794521c Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:09:01 -0500 Subject: [PATCH 11/27] Add editor config --- .editorconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3c621b7 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# https://editorconfig.org/ +# https://prettier.io/docs/en/configuration.html#editorconfig + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file From c3d93772b9f1598140c95834108b8f2562da0874 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:09:13 -0500 Subject: [PATCH 12/27] Add jest config --- jest.config.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 jest.config.js diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..c71158b --- /dev/null +++ b/jest.config.js @@ -0,0 +1,7 @@ +/** @type {import('jest').Config} */ +const config = { + cacheDirectory: "node_modules/.cache/jest", + roots: ["/src"], +}; + +module.exports = config; From aa852bf66f5558744366a8419b3dd653856f9b67 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:09:34 -0500 Subject: [PATCH 13/27] Update tsconfig --- tsconfig.json | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index fe86b1e..e4c67ba 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,29 @@ { + "extends": "@tsconfig/node18/tsconfig.json", "compilerOptions": { - "target": "ES6", - "module": "CommonJS", - "declaration": true, - "outDir": "./build", - "strict": true + "baseUrl": "src", + "rootDir": "src/", + "outDir": "build/", + + // pulls from Node 18 + Strictest: https://github.com/tsconfig/bases/blob/main/bases/node18-strictest.combined.json + "allowJs": false, + "allowSyntheticDefaultImports": true, + "allowUnusedLabels": false, + "allowUnreachableCode": false, + "noFallthroughCasesInSwitch": true, + "noImplicitOverride": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true }, - "include": ["src"] + "include": ["src"], + "ts-node": { + "swc": true, // https://typestrong.org/ts-node/docs/swc + + // https://typestrong.org/ts-node/docs/paths/ + // tsconfig-paths removes the need for NODE_PATH=./src and allows for + // fancier paths: https://medium.com/@fmoessle/typescript-paths-with-ts-node-ts-node-dev-and-jest-671deacf6428 + "require": ["tsconfig-paths/register", "dotenv/config"] + } } From 37e3033577b0c60569a3f7da8cdbb124dfb0662b Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:09:49 -0500 Subject: [PATCH 14/27] Update license --- LICENSE | 222 +++++----------------------------------------- package-lock.json | 7 ++ package.json | 7 +- 3 files changed, 32 insertions(+), 204 deletions(-) diff --git a/LICENSE b/LICENSE index 261eeb9..b1f483e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,21 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +MIT License + +Copyright (c) 2024 Fieldguide + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/package-lock.json b/package-lock.json index 036cf04..23a5358 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@babel/core": "^7.21.8", "@babel/preset-env": "^7.21.5", "@babel/preset-typescript": "^7.21.5", + "@tsconfig/node18": "^18.2.2", "@types/jest": "^29.5.1", "@types/lodash": "^4.14.194", "@typescript-eslint/eslint-plugin": "^5.59.5", @@ -2802,6 +2803,12 @@ "node": ">=10" } }, + "node_modules/@tsconfig/node18": { + "version": "18.2.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", + "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==", + "dev": true + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", diff --git a/package.json b/package.json index 4253d97..a786740 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { "name": "@fieldguide/pipeline", "description": "A toolkit to easily build synchronous process pipelines in TypeScript/JavaScript", - "version": "1.0.0", + "version": "0.1.0", "scripts": { "build": "tsc", "eslint": "eslint --ext .js,.ts --cache --cache-location=node_modules/.cache/eslint --cache-strategy content .", "eslint:fix": "npm run eslint -- --fix", "prettier": "prettier --check .", "prettier:fix": "prettier --write .", - "test": "NODE_PATH=./src jest -o --watch --runInBand --detectOpenHandles", + "test": "NODE_PATH=./src jest --onlyChanged --watch --runInBand --detectOpenHandles", "test:ci": "NODE_PATH=./src jest" }, "repository": { @@ -23,7 +23,7 @@ "processing" ], "author": "Fieldguide", - "license": "Apache-2.0", + "license": "MIT", "bugs": { "url": "https://github.com/fieldguide/pipeline/issues" }, @@ -32,6 +32,7 @@ "@babel/core": "^7.21.8", "@babel/preset-env": "^7.21.5", "@babel/preset-typescript": "^7.21.5", + "@tsconfig/node18": "^18.2.2", "@types/jest": "^29.5.1", "@types/lodash": "^4.14.194", "@typescript-eslint/eslint-plugin": "^5.59.5", From 11ab15445b9b9d7cd93119d4bcbc548c1e8d4a71 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:10:02 -0500 Subject: [PATCH 15/27] Add override to error class property --- src/error/PipelineError.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/error/PipelineError.ts b/src/error/PipelineError.ts index 92993e3..4a5b85a 100644 --- a/src/error/PipelineError.ts +++ b/src/error/PipelineError.ts @@ -27,7 +27,7 @@ export class PipelineError< protected pipelineResults: Partial, protected pipelineMetadata: PipelineMetadata, /** A throwable that caused this exception */ - public readonly cause?: unknown + public override readonly cause?: unknown ) { // prepend the message with the pipeline name super(`[${pipelineMetadata.name}] ${message}`); From 3df89cc65bf2b4f1a647c6487fb38fc48894bf75 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:14:44 -0500 Subject: [PATCH 16/27] Update eslint, prettier, and add no-unused-imports --- .eslintrc.js | 2 +- README.md | 2 +- package-lock.json | 265 +++++++++++++++------------ package.json | 9 +- src/__tests__/buildPipeline.test.ts | 4 +- src/buildPipeline.ts | 20 +- src/error/PipelineError.ts | 4 +- src/middleware/logStageMiddleware.ts | 2 +- src/types.ts | 16 +- tsconfig.json | 6 +- 10 files changed, 179 insertions(+), 151 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 58208cd..e9adae0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,7 @@ module.exports = { root: true, parser: "@typescript-eslint/parser", - plugins: ["@typescript-eslint"], + plugins: ["@typescript-eslint", "unused-imports"], extends: [ "eslint:recommended", "plugin:@typescript-eslint/recommended", diff --git a/README.md b/README.md index 415475e..bbc7650 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ The [pipeline builder](./src/buildPipeline.ts) is a factory that accepts the ind ```typescript export type Pipeline = ( - args: A + args: A, ) => Promise; ``` diff --git a/package-lock.json b/package-lock.json index 23a5358..10a4542 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,13 @@ { "name": "@fieldguide/pipeline", - "version": "1.0.0", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@fieldguide/pipeline", - "version": "1.0.0", - "license": "Apache-2.0", + "version": "0.1.0", + "license": "MIT", "devDependencies": { "@babel/core": "^7.21.8", "@babel/preset-env": "^7.21.5", @@ -15,14 +15,15 @@ "@tsconfig/node18": "^18.2.2", "@types/jest": "^29.5.1", "@types/lodash": "^4.14.194", - "@typescript-eslint/eslint-plugin": "^5.59.5", - "@typescript-eslint/parser": "^5.59.5", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", "eslint": "^8.40.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^9.1.0", "eslint-formatter-summary": "^1.1.0", + "eslint-plugin-unused-imports": "^3.0.0", "jest": "^29.5.0", "lodash": "^4.17.21", - "prettier": "^2.8.8", + "prettier": "^3.2.4", "typescript": "^5.0.4" } }, @@ -3003,32 +3004,33 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", + "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/type-utils": "6.19.0", + "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3070,25 +3072,26 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", + "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3097,16 +3100,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", + "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3114,25 +3117,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", + "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/utils": "6.19.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3141,12 +3144,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", + "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3154,21 +3157,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", + "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3180,6 +3184,15 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3192,6 +3205,21 @@ "node": ">=10" } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -3214,29 +3242,28 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", + "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { @@ -3273,16 +3300,16 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", + "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.19.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -4886,9 +4913,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -4983,17 +5010,34 @@ "node": ">=8" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint-plugin-unused-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", + "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "eslint-rule-composer": "^0.3.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0", + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, + "engines": { + "node": ">=4.0.0" } }, "node_modules/eslint-visitor-keys": { @@ -5214,15 +5258,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -9056,12 +9091,6 @@ "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/new-github-release-url": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-1.0.0.tgz", @@ -10171,15 +10200,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", + "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -11212,27 +11241,25 @@ "node": ">=8" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" + "node": ">=16.13.0" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "typescript": ">=4.2.0" } }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index a786740..7125fa7 100644 --- a/package.json +++ b/package.json @@ -35,14 +35,15 @@ "@tsconfig/node18": "^18.2.2", "@types/jest": "^29.5.1", "@types/lodash": "^4.14.194", - "@typescript-eslint/eslint-plugin": "^5.59.5", - "@typescript-eslint/parser": "^5.59.5", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", "eslint": "^8.40.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^9.1.0", "eslint-formatter-summary": "^1.1.0", + "eslint-plugin-unused-imports": "^3.0.0", "jest": "^29.5.0", "lodash": "^4.17.21", - "prettier": "^2.8.8", + "prettier": "^3.2.4", "typescript": "^5.0.4" } } diff --git a/src/__tests__/buildPipeline.test.ts b/src/__tests__/buildPipeline.test.ts index bad01e8..ed5bba3 100644 --- a/src/__tests__/buildPipeline.test.ts +++ b/src/__tests__/buildPipeline.test.ts @@ -39,7 +39,7 @@ describe("buildPipeline", () => { const test = () => runPipelineForStages(partialResultsStages); await expect(test).rejects.toThrow( - "Results from pipeline failed validation" + "Results from pipeline failed validation", ); await expect(test).rejects.toThrow(PipelineError); }); @@ -100,7 +100,7 @@ describe("buildPipeline", () => { function runPipelineForStages( stages: TestStage[], - middleware: PipelineMiddleware[] = [] + middleware: PipelineMiddleware[] = [], ) { const pipeline = buildPipeline< TestPipelineArguments, diff --git a/src/buildPipeline.ts b/src/buildPipeline.ts index d58e552..be462ef 100644 --- a/src/buildPipeline.ts +++ b/src/buildPipeline.ts @@ -15,7 +15,7 @@ import { interface BuildPipelineInput< A extends object, C extends object, - R extends object + R extends object, > { name: string; initializer: PipelineInitializer; @@ -30,7 +30,7 @@ interface BuildPipelineInput< export function buildPipeline< A extends object, C extends object, - R extends object + R extends object, >({ name, initializer, @@ -56,7 +56,7 @@ export function buildPipeline< maybeContext = context; const buildMiddlewarePayload = ( - currentStage: string + currentStage: string, ): PipelineMiddlewarePayload => ({ context, metadata, @@ -69,7 +69,7 @@ export function buildPipeline< await executeMiddlewareForEvent( "onStageStart", middleware, - buildMiddlewarePayload(stage.name) + buildMiddlewarePayload(stage.name), ); const stageResults = await stage(context, metadata); @@ -82,7 +82,7 @@ export function buildPipeline< await executeMiddlewareForEvent( "onStageComplete", [...middleware].reverse(), - buildMiddlewarePayload(stage.name) + buildMiddlewarePayload(stage.name), ); } @@ -97,7 +97,7 @@ export function buildPipeline< maybeContext, results, metadata, - e + e, ); } }; @@ -106,11 +106,11 @@ export function buildPipeline< async function executeMiddlewareForEvent< A extends object, C extends object, - R extends object + R extends object, >( event: PipelineMiddlewareEventType, middleware: PipelineMiddleware[], - payload: PipelineMiddlewarePayload + payload: PipelineMiddlewarePayload, ) { const handlers = compact>( middleware.map((m) => { @@ -119,7 +119,7 @@ async function executeMiddlewareForEvent< } else { return m[event]; } - }) + }), ); for (const handler of handlers) { @@ -132,7 +132,7 @@ async function executeMiddlewareForEvent< */ function isValidResult( result: Partial, - validator: PipelineResultValidator + validator: PipelineResultValidator, ): result is R { return validator(result); } diff --git a/src/error/PipelineError.ts b/src/error/PipelineError.ts index 4a5b85a..130dc5f 100644 --- a/src/error/PipelineError.ts +++ b/src/error/PipelineError.ts @@ -6,7 +6,7 @@ import { PipelineMetadata } from "../types"; export class PipelineError< A extends object, C extends object, - R extends object + R extends object, > extends Error { /** * Retrieve data from the pipeline execution that caused this error. This includes the Context, Metadata, and any Results from the pipeline so far. @@ -27,7 +27,7 @@ export class PipelineError< protected pipelineResults: Partial, protected pipelineMetadata: PipelineMetadata, /** A throwable that caused this exception */ - public override readonly cause?: unknown + public override readonly cause?: unknown, ) { // prepend the message with the pipeline name super(`[${pipelineMetadata.name}] ${message}`); diff --git a/src/middleware/logStageMiddleware.ts b/src/middleware/logStageMiddleware.ts index 97c48c2..9290f99 100644 --- a/src/middleware/logStageMiddleware.ts +++ b/src/middleware/logStageMiddleware.ts @@ -4,7 +4,7 @@ import { PipelineMiddlewareFactory } from "../types"; * A simple implementation of Pipeline middleware that logs when each stage begins and finishes */ export const logStageMiddleware: PipelineMiddlewareFactory = ( - logger: (msg: string) => void = console.log + logger: (msg: string) => void = console.log, ) => ({ onStageStart: ({ metadata, currentStage }) => { logger(`[${metadata.name}] starting ${currentStage}...`); diff --git a/src/types.ts b/src/types.ts index 805c098..73e459d 100644 --- a/src/types.ts +++ b/src/types.ts @@ -2,7 +2,7 @@ * A pipeline is an executable that takes in arguments and produces results */ export type Pipeline = ( - args: A + args: A, ) => Promise; /** @@ -11,10 +11,10 @@ export type Pipeline = ( export type PipelineStage< A extends object, C extends object, - R extends object + R extends object, > = ( context: C, - metadata: PipelineMetadata + metadata: PipelineMetadata, ) => Promise> | Partial | Promise | void; /** @@ -23,14 +23,14 @@ export type PipelineStage< * Note that the A type (Arguments) is optional if the arguments are not needed to initialize the context. */ export type PipelineInitializer = ( - args: A + args: A, ) => Promise | C; /** * Validates that results at the conclusion of the pipeline's execution are complete */ export type PipelineResultValidator = ( - results: Partial + results: Partial, ) => boolean; /** @@ -44,7 +44,7 @@ export interface PipelineMetadata { interface BasePipelineMiddleware< A extends object = object, C extends object = object, - R extends object = object + R extends object = object, > { /** Runs before a pipeline stage is executed */ onStageStart: PipelineMiddlewareCallable; @@ -75,7 +75,7 @@ export type PipelineMiddlewareEventType = keyof BasePipelineMiddleware; export type PipelineMiddlewareCallable< A extends object = object, C extends object = object, - R extends object = object + R extends object = object, > = (input: PipelineMiddlewarePayload) => Promise | void; /** @@ -84,7 +84,7 @@ export type PipelineMiddlewareCallable< export interface PipelineMiddlewarePayload< A extends object, C extends object, - R extends object + R extends object, > { context: C; metadata: PipelineMetadata; diff --git a/tsconfig.json b/tsconfig.json index e4c67ba..f112246 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,7 @@ "noUncheckedIndexedAccess": true, "noUnusedLocals": true, "noUnusedParameters": true, - "resolveJsonModule": true + "resolveJsonModule": true, }, "include": ["src"], "ts-node": { @@ -24,6 +24,6 @@ // https://typestrong.org/ts-node/docs/paths/ // tsconfig-paths removes the need for NODE_PATH=./src and allows for // fancier paths: https://medium.com/@fmoessle/typescript-paths-with-ts-node-ts-node-dev-and-jest-671deacf6428 - "require": ["tsconfig-paths/register", "dotenv/config"] - } + "require": ["tsconfig-paths/register", "dotenv/config"], + }, } From 87565d7083d490f86a440a629285c994d6c6debe Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:17:05 -0500 Subject: [PATCH 17/27] Remove unused formatter-summary --- package-lock.json | 6121 ++++++++------------------------------------- package.json | 1 - 2 files changed, 1087 insertions(+), 5035 deletions(-) diff --git a/package-lock.json b/package-lock.json index 10a4542..67b6639 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,6 @@ "@typescript-eslint/parser": "^6.19.0", "eslint": "^8.40.0", "eslint-config-prettier": "^9.1.0", - "eslint-formatter-summary": "^1.1.0", "eslint-plugin-unused-imports": "^3.0.0", "jest": "^29.5.0", "lodash": "^4.17.21", @@ -2723,56 +2722,12 @@ "node": ">= 8" } }, - "node_modules/@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", - "dev": true, - "optional": true, - "dependencies": { - "any-observable": "^0.3.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } - } - }, - "node_modules/@samverschueren/stream-to-observable/node_modules/any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, - "node_modules/@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, "node_modules/@sinonjs/commons": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", @@ -2791,19 +2746,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "optional": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@tsconfig/node18": { "version": "18.2.2", "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", @@ -2851,19 +2793,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -2873,13 +2802,6 @@ "@types/node": "*" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true, - "optional": true - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -2920,29 +2842,12 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/lodash": { "version": "4.14.202", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", "dev": true }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true, - "optional": true - }, "node_modules/@types/node": { "version": "20.11.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.0.tgz", @@ -2952,30 +2857,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true, - "optional": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true, - "optional": true - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/semver": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", @@ -3343,30 +3224,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "optional": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3383,16 +3240,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "optional": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3429,27 +3276,6 @@ "node": ">=4" } }, - "node_modules/any-observable": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.5.1.tgz", - "integrity": "sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } - } - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -3478,26 +3304,6 @@ "node": ">=8" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -3720,149 +3526,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3932,69 +3595,13 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true, - "optional": true - }, - "node_modules/cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "optional": true, - "dependencies": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - }, "engines": { - "node": ">=10" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "optional": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" + "node": ">=6" } }, "node_modules/camelcase": { @@ -4006,24 +3613,6 @@ "node": ">=6" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "optional": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001576", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", @@ -4067,13 +3656,6 @@ "node": ">=10" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true, - "optional": true - }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -4095,117 +3677,6 @@ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "optional": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", - "dev": true, - "optional": true, - "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -4270,29 +3741,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -4303,16 +3751,6 @@ "node": ">= 0.12.0" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", @@ -4340,83 +3778,12 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "optional": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/configstore/node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "optional": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/configstore/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "optional": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "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/core-js": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz", - "integrity": "sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-js-compat": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", @@ -4430,23 +3797,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -4552,23 +3902,6 @@ "node": ">= 8" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true, - "optional": true - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -4586,56 +3919,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "optional": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress-response": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/dedent": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", @@ -4650,16 +3933,6 @@ } } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -4675,52 +3948,19 @@ "node": ">=0.10.0" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "optional": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "optional": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4750,45 +3990,12 @@ "node": ">=6.0.0" } }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "optional": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "dev": true, - "optional": true - }, "node_modules/electron-to-chromium": { "version": "1.4.630", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", "integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==", "dev": true }, - "node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", @@ -4807,16 +4014,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "optional": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -4835,19 +4032,6 @@ "node": ">=6" } }, - "node_modules/escape-goat": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", - "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -4924,92 +4108,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-formatter-summary": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-formatter-summary/-/eslint-formatter-summary-1.1.0.tgz", - "integrity": "sha512-teOh471ZYeEShXhBFb16X87buUjNZa2TMNn3CSf//DIKLNneqbk7u5i9hDDiIaQVvZbBXJHkgYxj8urcNKWbXw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "core-js": "^3.9.1" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "np": "^7.4.0" - } - }, - "node_modules/eslint-formatter-summary/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint-formatter-summary/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint-formatter-summary/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint-formatter-summary/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint-formatter-summary/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-formatter-summary/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint-plugin-unused-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", @@ -5315,21 +4413,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "optional": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5394,22 +4477,6 @@ "bser": "2.1.1" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -5538,13 +4605,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/github-url-from-git": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz", - "integrity": "sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==", - "dev": true, - "optional": true - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -5577,22 +4637,6 @@ "node": ">=10.13.0" } }, - "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "optional": true, - "dependencies": { - "ini": "1.3.7" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -5622,65 +4666,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", - "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^2.0.0", - "@szmarczak/http-timer": "^4.0.0", - "@types/cacheable-request": "^6.0.1", - "cacheable-lookup": "^2.0.0", - "cacheable-request": "^7.0.1", - "decompress-response": "^5.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^5.0.0", - "lowercase-keys": "^2.0.0", - "mimic-response": "^2.1.0", - "p-cancelable": "^2.0.0", - "p-event": "^4.0.0", - "responselike": "^2.0.0", - "to-readable-stream": "^2.0.0", - "type-fest": "^0.10.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got/node_modules/type-fest": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5693,39 +4678,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -5735,16 +4687,6 @@ "node": ">=4" } }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -5757,93 +4699,30 @@ "node": ">= 0.4" } }, - "node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "engines": { - "node": ">=10" + "node": ">=10.17.0" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "optional": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" } }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "optional": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -5860,16 +4739,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -5898,16 +4767,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -5924,254 +4783,310 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true, - "optional": true + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "optional": true, "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "hasown": "^2.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inquirer-autosubmit-prompt": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz", - "integrity": "sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "optional": true, - "dependencies": { - "chalk": "^2.4.1", - "inquirer": "^6.2.1", - "rxjs": "^6.3.3" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "optional": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "optional": true, "engines": { "node": ">=6" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "optional": true, "dependencies": { - "restore-cursor": "^2.0.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "optional": true + "engines": { + "node": ">=0.12.0" + } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "optional": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, "engines": { - "node": ">=6.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/is-fullwidth-code-point": { + "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "optional": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", "dev": true, - "optional": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", - "dev": true, - "optional": true - }, - "node_modules/inquirer-autosubmit-prompt/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "optional": true, "dependencies": { - "mimic-fn": "^1.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "optional": true, "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "optional": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "optional": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "optional": true, "dependencies": { - "ansi-regex": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/inquirer-autosubmit-prompt/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "optional": true, "dependencies": { - "ansi-regex": "^4.1.0" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, - "optional": true, "dependencies": { - "color-convert": "^2.0.1" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "optional": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6183,12 +5098,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/inquirer/node_modules/color-convert": { + "node_modules/jest-circus/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "optional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -6196,29 +5110,26 @@ "node": ">=7.0.0" } }, - "node_modules/inquirer/node_modules/color-name": { + "node_modules/jest-circus/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true + "dev": true }, - "node_modules/inquirer/node_modules/has-flag": { + "node_modules/jest-circus/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "optional": true, "engines": { "node": ">=8" } }, - "node_modules/inquirer/node_modules/supports-color": { + "node_modules/jest-circus/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "optional": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6226,384 +5137,289 @@ "node": ">=8" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "optional": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true, - "optional": true - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true, "bin": { - "is-docker": "cli.js" + "jest": "bin/jest.js" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, - "engines": { - "node": ">=0.10.0" + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "optional": true, "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.12.0" + "node": ">=7.0.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "optional": true, "engines": { "node": ">=8" } }, - "node_modules/is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "optional": true, "dependencies": { - "symbol-observable": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/is-observable/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true, - "optional": true - }, - "node_modules/is-scoped": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", - "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "optional": true, "dependencies": { - "scoped-regex": "^2.0.0" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "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.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "optional": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "optional": true, - "engines": { - "node": ">=10" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-url-superb": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", - "dev": true, - "optional": true, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "optional": true, "dependencies": { - "is-docker": "^2.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true, - "optional": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/issue-regex": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/issue-regex/-/issue-regex-3.1.0.tgz", - "integrity": "sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA==", + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "optional": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/istanbul-lib-instrument/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" + "node": ">=7.0.0" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -6612,7 +5428,7 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { + "node_modules/jest-diff/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -6624,105 +5440,35 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", - "@types/node": "*", "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", + "jest-get-type": "^29.6.3", "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { + "node_modules/jest-each/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -6737,7 +5483,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-circus/node_modules/chalk": { + "node_modules/jest-each/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -6753,7 +5499,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-circus/node_modules/color-convert": { + "node_modules/jest-each/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -6765,13 +5511,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-circus/node_modules/color-name": { + "node_modules/jest-each/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-circus/node_modules/has-flag": { + "node_modules/jest-each/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -6780,7 +5526,7 @@ "node": ">=8" } }, - "node_modules/jest-circus/node_modules/supports-color": { + "node_modules/jest-each/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -6792,40 +5538,86 @@ "node": ">=8" } }, - "node_modules/jest-cli": { + "node_modules/jest-environment-node": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "bin": { - "jest": "bin/jest.js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@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.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-cli/node_modules/ansi-styles": { + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -6840,7 +5632,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/node_modules/chalk": { + "node_modules/jest-matcher-utils/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -6856,7 +5648,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/color-convert": { + "node_modules/jest-matcher-utils/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -6868,13 +5660,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-cli/node_modules/color-name": { + "node_modules/jest-matcher-utils/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-cli/node_modules/has-flag": { + "node_modules/jest-matcher-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -6883,7 +5675,7 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/supports-color": { + "node_modules/jest-matcher-utils/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -6895,52 +5687,27 @@ "node": ">=8" } }, - "node_modules/jest-config": { + "node_modules/jest-message-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", + "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", + "@types/stack-utils": "^2.0.0", "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.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", "micromatch": "^4.0.4", - "parse-json": "^5.2.0", "pretty-format": "^29.7.0", "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "stack-utils": "^2.0.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } } }, - "node_modules/jest-config/node_modules/ansi-styles": { + "node_modules/jest-message-util/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -6955,7 +5722,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config/node_modules/chalk": { + "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -6971,7 +5738,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-config/node_modules/color-convert": { + "node_modules/jest-message-util/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -6983,13 +5750,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-config/node_modules/color-name": { + "node_modules/jest-message-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-config/node_modules/has-flag": { + "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -6998,7 +5765,7 @@ "node": ">=8" } }, - "node_modules/jest-config/node_modules/supports-color": { + "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7010,37 +5777,95 @@ "node": ">=8" } }, - "node_modules/jest-diff": { + "node_modules/jest-mock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=6" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } }, - "node_modules/jest-diff/node_modules/chalk": { + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7056,7 +5881,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-diff/node_modules/color-convert": { + "node_modules/jest-resolve/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7068,13 +5893,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-diff/node_modules/color-name": { + "node_modules/jest-resolve/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-diff/node_modules/has-flag": { + "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7083,7 +5908,7 @@ "node": ">=8" } }, - "node_modules/jest-diff/node_modules/supports-color": { + "node_modules/jest-resolve/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7095,35 +5920,39 @@ "node": ">=8" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { + "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", + "@types/node": "*", "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { + "node_modules/jest-runner/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7138,7 +5967,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-each/node_modules/chalk": { + "node_modules/jest-runner/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7154,7 +5983,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-each/node_modules/color-convert": { + "node_modules/jest-runner/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7166,13 +5995,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-each/node_modules/color-name": { + "node_modules/jest-runner/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-each/node_modules/has-flag": { + "node_modules/jest-runner/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7181,7 +6010,7 @@ "node": ">=8" } }, - "node_modules/jest-each/node_modules/supports-color": { + "node_modules/jest-runner/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7193,86 +6022,40 @@ "node": ">=8" } }, - "node_modules/jest-environment-node": { + "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", + "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.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7287,7 +6070,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { + "node_modules/jest-runtime/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7303,7 +6086,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { + "node_modules/jest-runtime/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7315,13 +6098,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/color-name": { + "node_modules/jest-runtime/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { + "node_modules/jest-runtime/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7330,7 +6113,7 @@ "node": ">=8" } }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { + "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7342,27 +6125,38 @@ "node": ">=8" } }, - "node_modules/jest-message-util": { + "node_modules/jest-snapshot": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.13", + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { + "node_modules/jest-snapshot/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7377,7 +6171,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/chalk": { + "node_modules/jest-snapshot/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7393,7 +6187,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/color-convert": { + "node_modules/jest-snapshot/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7405,13 +6199,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-message-util/node_modules/color-name": { + "node_modules/jest-snapshot/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-message-util/node_modules/has-flag": { + "node_modules/jest-snapshot/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7420,92 +6214,69 @@ "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" + "lru-cache": "^6.0.0" }, - "peerDependencies": { - "jest-resolve": "*" + "bin": { + "semver": "bin/semver.js" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-resolve-dependencies": { + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { + "node_modules/jest-util/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7520,7 +6291,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-resolve/node_modules/chalk": { + "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7536,7 +6307,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-resolve/node_modules/color-convert": { + "node_modules/jest-util/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7548,13 +6319,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-resolve/node_modules/color-name": { + "node_modules/jest-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-resolve/node_modules/has-flag": { + "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7563,7 +6334,7 @@ "node": ">=8" } }, - "node_modules/jest-resolve/node_modules/supports-color": { + "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7575,39 +6346,24 @@ "node": ">=8" } }, - "node_modules/jest-runner": { + "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "@types/node": "*", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { + "node_modules/jest-validate/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7622,7 +6378,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runner/node_modules/chalk": { + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7638,7 +6406,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runner/node_modules/color-convert": { + "node_modules/jest-validate/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7650,13 +6418,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-runner/node_modules/color-name": { + "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-runner/node_modules/has-flag": { + "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7665,7 +6433,7 @@ "node": ">=8" } }, - "node_modules/jest-runner/node_modules/supports-color": { + "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7677,40 +6445,26 @@ "node": ">=8" } }, - "node_modules/jest-runtime": { + "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", + "ansi-escapes": "^4.2.1", "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.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", + "emittery": "^0.13.1", "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { + "node_modules/jest-watcher/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7725,7 +6479,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/chalk": { + "node_modules/jest-watcher/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7741,7 +6495,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/color-convert": { + "node_modules/jest-watcher/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7753,13 +6507,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-runtime/node_modules/color-name": { + "node_modules/jest-watcher/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-runtime/node_modules/has-flag": { + "node_modules/jest-watcher/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7768,7 +6522,7 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/supports-color": { + "node_modules/jest-watcher/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7780,1897 +6534,164 @@ "node": ">=8" } }, - "node_modules/jest-snapshot": { + "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", + "@types/node": "*", "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/has-flag": { + "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "argparse": "^2.0.1" }, "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "json-buffer": "3.0.1" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8.0" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "optional": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", - "dev": true, - "optional": true, - "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/listr-input": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/listr-input/-/listr-input-0.2.1.tgz", - "integrity": "sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==", - "dev": true, - "optional": true, - "dependencies": { - "inquirer": "^7.0.0", - "inquirer-autosubmit-prompt": "^0.2.0", - "rxjs": "^6.5.3", - "through": "^2.3.8" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "listr": "^0.14.2" - } - }, - "node_modules/listr-update-renderer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true, - "optional": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", - "dev": true, - "optional": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "optional": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "optional": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "optional": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "optional": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "optional": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "optional": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true, - "optional": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/new-github-release-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-1.0.0.tgz", - "integrity": "sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A==", - "dev": true, - "optional": true, - "dependencies": { - "type-fest": "^0.4.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/new-github-release-url/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "optional": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/np": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/np/-/np-7.7.0.tgz", - "integrity": "sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q==", - "dev": true, - "optional": true, - "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.1", - "any-observable": "^0.5.1", - "async-exit-hook": "^2.0.1", - "chalk": "^4.1.0", - "cosmiconfig": "^7.0.0", - "del": "^6.0.0", - "escape-goat": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "execa": "^5.0.0", - "github-url-from-git": "^1.5.0", - "has-yarn": "^2.1.0", - "hosted-git-info": "^3.0.7", - "ignore-walk": "^3.0.3", - "import-local": "^3.0.2", - "inquirer": "^7.3.3", - "is-installed-globally": "^0.3.2", - "is-interactive": "^1.0.0", - "is-scoped": "^2.1.0", - "issue-regex": "^3.1.0", - "listr": "^0.14.3", - "listr-input": "^0.2.1", - "log-symbols": "^4.0.0", - "meow": "^8.1.0", - "minimatch": "^3.0.4", - "new-github-release-url": "^1.0.0", - "npm-name": "^6.0.1", - "onetime": "^5.1.2", - "open": "^7.3.0", - "ow": "^0.21.0", - "p-memoize": "^4.0.1", - "p-timeout": "^4.1.0", - "pkg-dir": "^5.0.0", - "read-pkg-up": "^7.0.1", - "rxjs": "^6.6.3", - "semver": "^7.3.4", - "split": "^1.0.1", - "symbol-observable": "^3.0.0", - "terminal-link": "^2.1.1", - "update-notifier": "^5.0.1" - }, - "bin": { - "np": "source/cli.js" - }, - "engines": { - "git": ">=2.11.0", - "node": ">=10", - "npm": ">=6.8.0", - "yarn": ">=1.7.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/np?sponsor=1" - } - }, - "node_modules/np/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/np/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/np/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/np/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/np/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/np/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/np/node_modules/lru-cache": { + "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/np/node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "optional": true, - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/np/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/np/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/np/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - }, - "node_modules/npm-name": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-6.0.1.tgz", - "integrity": "sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw==", - "dev": true, - "optional": true, - "dependencies": { - "got": "^10.6.0", - "is-scoped": "^2.1.0", - "is-url-superb": "^4.0.0", - "lodash.zip": "^4.2.0", - "org-regex": "^1.0.0", - "p-map": "^3.0.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.1.0", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-name/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "optional": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/org-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/org-regex/-/org-regex-1.0.0.tgz", - "integrity": "sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ow": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ow/-/ow-0.21.0.tgz", - "integrity": "sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "callsites": "^3.1.0", - "dot-prop": "^6.0.1", - "lodash.isequal": "^4.5.0", - "type-fest": "^0.20.2", - "vali-date": "^1.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ow/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/ow/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "optional": true, - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-event/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "optional": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "p-locate": "^5.0.0" }, "engines": { "node": ">=10" @@ -9679,29 +6700,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "yallist": "^3.0.2" } }, - "node_modules/p-map": { + "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "optional": true, "dependencies": { - "aggregate-error": "^3.0.0" + "semver": "^7.5.3" }, "engines": { "node": ">=10" @@ -9710,309 +6742,218 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-memoize": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-4.0.4.tgz", - "integrity": "sha512-ijdh0DP4Mk6J4FXlOM6vPPoCjPytcEseW8p/k5SDTSSfGV3E9bpt9Yzfifvzp6iohIieoLTkXRb32OWV0fB2Lw==", + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "optional": true, "dependencies": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.0.0", - "p-settle": "^4.1.1" + "yallist": "^4.0.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/p-memoize?sponsor=1" - } - }, - "node_modules/p-memoize/node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" } }, - "node_modules/p-reflect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", - "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-settle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", - "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", + "node_modules/make-dir/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "optional": true, "dependencies": { - "p-limit": "^2.2.2", - "p-reflect": "^2.1.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-settle/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "optional": true, "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "tmpl": "1.0.5" } }, - "node_modules/p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { - "node": ">=6" + "node": ">= 8" } }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "optional": true, "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, - "node_modules/package-json/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "optional": true, "engines": { "node": ">=6" } }, - "node_modules/package-json/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "optional": true, "dependencies": { - "defer-to-connect": "^1.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/package-json/node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "optional": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/package-json/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "optional": true, "dependencies": { - "pump": "^3.0.0" + "path-key": "^3.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "optional": true, "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" + "wrappy": "1" } }, - "node_modules/package-json/node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true, - "optional": true - }, - "node_modules/package-json/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "optional": true, "dependencies": { - "pump": "^3.0.0" + "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" - } - }, - "node_modules/package-json/node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/package-json/node_modules/got/node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json/node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", - "dev": true, - "optional": true - }, - "node_modules/package-json/node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, - "optional": true, "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/package-json/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/package-json/node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "optional": true, + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "node_modules/package-json/node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "optional": true, "dependencies": { - "lowercase-keys": "^1.0.0" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json/node_modules/responselike/node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "optional": true, + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json/node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "optional": true, "engines": { "node": ">=6" } @@ -10189,16 +7130,6 @@ "node": ">= 0.8.0" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, "node_modules/prettier": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", @@ -10222,322 +7153,88 @@ "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "optional": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pupa/node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "optional": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "optional": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "optional": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "optional": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "optional": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "optional": true - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "optional": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver" + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "optional": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "optional": true, "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/redent/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "optional": true, "engines": { - "node": ">=8" + "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -10588,32 +7285,6 @@ "node": ">=4" } }, - "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", - "dev": true, - "optional": true, - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "optional": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -10700,33 +7371,6 @@ "node": ">=10" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "optional": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "optional": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -10752,16 +7396,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10785,36 +7419,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "node_modules/scoped-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", - "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -10824,19 +7428,6 @@ "semver": "bin/semver.js" } }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "optional": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10879,16 +7470,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -10908,55 +7489,6 @@ "source-map": "^0.6.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "optional": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true, - "optional": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "optional": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true, - "optional": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "optional": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -11041,19 +7573,6 @@ "node": ">=6" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "optional": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -11078,43 +7597,6 @@ "node": ">=4" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -11127,33 +7609,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/symbol-observable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", - "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -11174,26 +7629,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "optional": true - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "optional": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -11209,16 +7644,6 @@ "node": ">=4" } }, - "node_modules/to-readable-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", - "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11228,17 +7653,7 @@ "is-number": "^7.0.0" }, "engines": { - "node": ">=8.0" - } - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" + "node": ">=8.0" } }, "node_modules/ts-api-utils": { @@ -11253,13 +7668,6 @@ "typescript": ">=4.2.0" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "optional": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -11293,16 +7701,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "optional": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typescript": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", @@ -11362,19 +7760,6 @@ "node": ">=4" } }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "optional": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -11405,190 +7790,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "optional": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/update-notifier/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/update-notifier/node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "dev": true, - "optional": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "optional": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -11598,19 +7799,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dev": true, - "optional": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", @@ -11625,37 +7813,6 @@ "node": ">=10.12.0" } }, - "node_modules/vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "optional": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "optional": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -11680,80 +7837,6 @@ "node": ">= 8" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "optional": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", - "dev": true, - "optional": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "optional": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -11773,16 +7856,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -11798,16 +7871,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -11826,16 +7889,6 @@ "node": ">=12" } }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", diff --git a/package.json b/package.json index 7125fa7..471d60c 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "@typescript-eslint/parser": "^6.19.0", "eslint": "^8.40.0", "eslint-config-prettier": "^9.1.0", - "eslint-formatter-summary": "^1.1.0", "eslint-plugin-unused-imports": "^3.0.0", "jest": "^29.5.0", "lodash": "^4.17.21", From 14c341e810e4b236cf85dc1cf0dddca858f4d62d Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:19:05 -0500 Subject: [PATCH 18/27] Update CI --- .github/workflows/ci.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d417644..938bbf9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,20 +10,18 @@ jobs: lint-and-typecheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version-file: ".nvmrc" cache: "npm" - name: Cache node_modules/.cache directory - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: node_modules/.cache key: node-modules-dot-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}-${{ github.run_id }} restore-keys: | node-modules-dot-cache-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}- - - name: Setup auth for private GH packages - run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.GH_PACKAGES_RO_BOT_TOKEN }}" > ~/.npmrc - run: npm ci --prefer-offline --no-audit - run: npm run prettier - run: npx tsc --noEmit From 8b102fcf626964d0e44efd87d6e51c8e10995914 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:22:19 -0500 Subject: [PATCH 19/27] Move lodash to non-dev dependency --- package-lock.json | 7 ++++--- package.json | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67b6639..2faf967 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "@fieldguide/pipeline", "version": "0.1.0", "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + }, "devDependencies": { "@babel/core": "^7.21.8", "@babel/preset-env": "^7.21.5", @@ -21,7 +24,6 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-unused-imports": "^3.0.0", "jest": "^29.5.0", - "lodash": "^4.17.21", "prettier": "^3.2.4", "typescript": "^5.0.4" } @@ -6703,8 +6705,7 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.debounce": { "version": "4.0.8", diff --git a/package.json b/package.json index 471d60c..96ce3fd 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,10 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-unused-imports": "^3.0.0", "jest": "^29.5.0", - "lodash": "^4.17.21", "prettier": "^3.2.4", "typescript": "^5.0.4" + }, + "dependencies": { + "lodash": "^4.17.21" } } From e0f636d849be6e7329a377a1b79d26bde06935ac Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 08:59:38 -0500 Subject: [PATCH 20/27] Don't build the tests or mocks --- tsconfig.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index f112246..0da5145 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,15 +15,16 @@ "noUncheckedIndexedAccess": true, "noUnusedLocals": true, "noUnusedParameters": true, - "resolveJsonModule": true, + "resolveJsonModule": true }, "include": ["src"], + "exclude": ["src/**/__tests__/**", "src/**/__mocks__/**"], "ts-node": { "swc": true, // https://typestrong.org/ts-node/docs/swc // https://typestrong.org/ts-node/docs/paths/ // tsconfig-paths removes the need for NODE_PATH=./src and allows for // fancier paths: https://medium.com/@fmoessle/typescript-paths-with-ts-node-ts-node-dev-and-jest-671deacf6428 - "require": ["tsconfig-paths/register", "dotenv/config"], - }, + "require": ["tsconfig-paths/register", "dotenv/config"] + } } From 8f7bf8350209f3ac46de6e0244cd09cba214661a Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 09:00:37 -0500 Subject: [PATCH 21/27] prettier --- tsconfig.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 0da5145..caf7c67 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,7 @@ "noUncheckedIndexedAccess": true, "noUnusedLocals": true, "noUnusedParameters": true, - "resolveJsonModule": true + "resolveJsonModule": true, }, "include": ["src"], "exclude": ["src/**/__tests__/**", "src/**/__mocks__/**"], @@ -25,6 +25,6 @@ // https://typestrong.org/ts-node/docs/paths/ // tsconfig-paths removes the need for NODE_PATH=./src and allows for // fancier paths: https://medium.com/@fmoessle/typescript-paths-with-ts-node-ts-node-dev-and-jest-671deacf6428 - "require": ["tsconfig-paths/register", "dotenv/config"] - } + "require": ["tsconfig-paths/register", "dotenv/config"], + }, } From cfa343f20a4ac1f20d54c32d188127d8e00dab26 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Fri, 19 Jan 2024 09:02:52 -0500 Subject: [PATCH 22/27] Revert ignoring tests since it negatively impacts eslint --- tsconfig.json | 1 - 1 file changed, 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index caf7c67..f112246 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,7 +18,6 @@ "resolveJsonModule": true, }, "include": ["src"], - "exclude": ["src/**/__tests__/**", "src/**/__mocks__/**"], "ts-node": { "swc": true, // https://typestrong.org/ts-node/docs/swc From 26c699dcb85af51d910c28c74c029229f7bf7de9 Mon Sep 17 00:00:00 2001 From: Nick Amoscato Date: Fri, 19 Jan 2024 22:57:16 -0500 Subject: [PATCH 23/27] Add unused-imports/no-unused-imports rule --- .eslintrc.js | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.js b/.eslintrc.js index e9adae0..84af8e0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -30,6 +30,7 @@ module.exports = { "@typescript-eslint/no-unsafe-call": "warn", "@typescript-eslint/no-unsafe-member-access": "warn", "@typescript-eslint/no-unsafe-return": "warn", + "unused-imports/no-unused-imports": "error", curly: "error", }, }, From 22b3882945d3689025a00fa4c3033653c22f1a8e Mon Sep 17 00:00:00 2001 From: Nick Amoscato Date: Fri, 19 Jan 2024 23:06:37 -0500 Subject: [PATCH 24/27] Remove unused ts-node config --- tsconfig.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index f112246..5f39ccc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,12 +18,4 @@ "resolveJsonModule": true, }, "include": ["src"], - "ts-node": { - "swc": true, // https://typestrong.org/ts-node/docs/swc - - // https://typestrong.org/ts-node/docs/paths/ - // tsconfig-paths removes the need for NODE_PATH=./src and allows for - // fancier paths: https://medium.com/@fmoessle/typescript-paths-with-ts-node-ts-node-dev-and-jest-671deacf6428 - "require": ["tsconfig-paths/register", "dotenv/config"], - }, } From 0dc789a57a7f5d8395f68440623eecc5152b199b Mon Sep 17 00:00:00 2001 From: Nick Amoscato Date: Fri, 19 Jan 2024 23:10:07 -0500 Subject: [PATCH 25/27] Commit some VS Code settings * recommended extensions * TypeScript version * default formatter --- .vscode/extensions.json | 7 +++++++ .vscode/settings.json | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..ffa5bcf --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "editorconfig.editorconfig", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index f1e546f..fd8c077 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,7 @@ { - "cSpell.words": ["fieldguide"] + "cSpell.words": [ + "fieldguide" + ], + "typescript.tsdk": "node_modules/typescript/lib", + "editor.defaultFormatter": "esbenp.prettier-vscode" } From f2fd669e80975df5f5e3b1c2c8ad7eff8c0b8224 Mon Sep 17 00:00:00 2001 From: Nick Amoscato Date: Fri, 19 Jan 2024 23:10:16 -0500 Subject: [PATCH 26/27] Add trailing newlines --- .editorconfig | 2 +- .eslintignore | 2 +- .prettierignore | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 3c621b7..6942e73 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,4 +9,4 @@ end_of_line = lf indent_size = 2 indent_style = space insert_final_newline = true -trim_trailing_whitespace = true \ No newline at end of file +trim_trailing_whitespace = true diff --git a/.eslintignore b/.eslintignore index 42afabf..796b96d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1 +1 @@ -/build \ No newline at end of file +/build diff --git a/.prettierignore b/.prettierignore index 7fda1e4..b2d7b12 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,3 @@ .github/*.md .vscode -build \ No newline at end of file +build From 0880b53e91deace0e4f7d847f48a8b060a1673b3 Mon Sep 17 00:00:00 2001 From: Nate Rutman Date: Tue, 23 Jan 2024 09:56:30 -0500 Subject: [PATCH 27/27] Simplify middleware interface --- README.md | 15 ++++++++++----- src/__tests__/buildPipeline.test.ts | 14 +------------- src/buildPipeline.ts | 8 +------- ...Middleware.ts => logStageMiddlewareFactory.ts} | 6 +++--- src/types.ts | 9 +-------- 5 files changed, 16 insertions(+), 36 deletions(-) rename src/middleware/{logStageMiddleware.ts => logStageMiddlewareFactory.ts} (75%) diff --git a/README.md b/README.md index bbc7650..858d5ac 100644 --- a/README.md +++ b/README.md @@ -91,9 +91,7 @@ If **Middleware** is specified, it will be run on the specified stage lifecycle | `onStageStart` | Runs before each stage is executed | | `onStageComplete` | Runs after each stage is executed | -Middleware can be specified as an object with one or more event keys or as a factory which returns an object with one or more event keys. - -A middleware callable is provided the following attributes: +Middleware is specified as an object with middleware callbacks mapped to at least one of the above event keys. A middleware callback is provided the following attributes: | Parameter | Description | | -------------- | ----------------------------------------------------------------------------- | @@ -103,8 +101,15 @@ A middleware callable is provided the following attributes: | `stageNames` | An array of the names of the methods that make up the current pipeline stages | | `currentStage` | The name of the current pipeline stage | -> [!NOTE] -> See the [LogStageMiddleware](./src/middleware/logStageMiddleware.ts) for a simple middleware implementation. +See the [LogStageMiddlewareFactory](./src/middleware/logStageMiddlewareFactory.ts) for a simple middleware implementation. It is wrapped in a factory method so a log method can be properly injected. + +```typescript +buildPipeline({ + /* ... */ + middleware: [logStageMiddlewareFactory(logger.log)], + /* ... */ +}); +``` ## Error Handling diff --git a/src/__tests__/buildPipeline.test.ts b/src/__tests__/buildPipeline.test.ts index ed5bba3..3b31075 100644 --- a/src/__tests__/buildPipeline.test.ts +++ b/src/__tests__/buildPipeline.test.ts @@ -12,7 +12,7 @@ import { import { buildPipeline } from "../buildPipeline"; import { PipelineError } from "../error/PipelineError"; import { returnSumResult } from "./../__mocks__/TestPipeline"; -import { PipelineMiddleware, PipelineMiddlewareFactory } from "./../types"; +import { PipelineMiddleware } from "./../types"; const INCREMENT = 5; @@ -65,16 +65,10 @@ describe("buildPipeline", () => { onStageComplete: partialComplete, }; - const factoryStart = jest.fn(); - const middlewareFactory: PipelineMiddlewareFactory = () => ({ - onStageStart: factoryStart, - }); - beforeEach(() => { testStart.mockClear(); testComplete.mockClear(); partialComplete.mockClear(); - factoryStart.mockClear(); }); it("should run the test middleware", async () => { @@ -89,12 +83,6 @@ describe("buildPipeline", () => { expect(partialComplete).toHaveBeenCalledTimes(successfulStages.length); }); - - it("should run the middleware factory", async () => { - await runPipelineForStages(successfulStages, [middlewareFactory]); - - expect(factoryStart).toHaveBeenCalledTimes(successfulStages.length); - }); }); }); diff --git a/src/buildPipeline.ts b/src/buildPipeline.ts index be462ef..6cefc60 100644 --- a/src/buildPipeline.ts +++ b/src/buildPipeline.ts @@ -113,13 +113,7 @@ async function executeMiddlewareForEvent< payload: PipelineMiddlewarePayload, ) { const handlers = compact>( - middleware.map((m) => { - if (typeof m === "function") { - return m()[event]; - } else { - return m[event]; - } - }), + middleware.map((m) => m[event]), ); for (const handler of handlers) { diff --git a/src/middleware/logStageMiddleware.ts b/src/middleware/logStageMiddlewareFactory.ts similarity index 75% rename from src/middleware/logStageMiddleware.ts rename to src/middleware/logStageMiddlewareFactory.ts index 9290f99..ba00136 100644 --- a/src/middleware/logStageMiddleware.ts +++ b/src/middleware/logStageMiddlewareFactory.ts @@ -1,11 +1,11 @@ -import { PipelineMiddlewareFactory } from "../types"; +import { PipelineMiddleware } from "../types"; /** * A simple implementation of Pipeline middleware that logs when each stage begins and finishes */ -export const logStageMiddleware: PipelineMiddlewareFactory = ( +export const logStageMiddlewareFactory = ( logger: (msg: string) => void = console.log, -) => ({ +): PipelineMiddleware => ({ onStageStart: ({ metadata, currentStage }) => { logger(`[${metadata.name}] starting ${currentStage}...`); }, diff --git a/src/types.ts b/src/types.ts index 73e459d..5a641e1 100644 --- a/src/types.ts +++ b/src/types.ts @@ -55,14 +55,7 @@ interface BasePipelineMiddleware< /** * Event-based middleware to run around each pipeline stage */ -export type PipelineMiddlewareFactory = ( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ...args: any[] -) => Partial; - -export type PipelineMiddleware = - | Partial - | PipelineMiddlewareFactory; +export type PipelineMiddleware = Partial; /** * The events that are supported by pipeline middleware