From 0495bb598247e25b92e7f5d31e51a53eed37052c Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Wed, 18 Sep 2024 19:36:29 +0530 Subject: [PATCH 1/8] Conflict issue of readme resolved --- .babelrc | 4 + .eslintrc | 15 + .gitignore | 20 + CHANGELOG.md | 10 + CONTRIBUTING.md | 31 + Dockerfile | 1 + EULA.md | 119 + README.md | 65 +- babel.config.js | 4 + jest.config.js | 10 + package-lock.json | 10093 +++++++++++++++++++++++++++++++++ package.json | 40 + samples/add/dash-add.html | 28 + samples/add/dash-add.js | 80 + samples/agent.js | 3809 +++++++++++++ samples/dash-control.css | 98 + samples/dash-control.js | 78 + samples/dash-controlbar.html | 41 + samples/dash-demo.html | 56 + samples/events.js | 106 + src/__test__/tracker.test.js | 426 ++ src/index.js | 6 + src/tracker.js | 247 + webpack.config.js | 45 + 24 files changed, 15431 insertions(+), 1 deletion(-) create mode 100644 .babelrc create mode 100644 .eslintrc create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 EULA.md create mode 100644 babel.config.js create mode 100644 jest.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 samples/add/dash-add.html create mode 100644 samples/add/dash-add.js create mode 100644 samples/agent.js create mode 100644 samples/dash-control.css create mode 100644 samples/dash-control.js create mode 100644 samples/dash-controlbar.html create mode 100644 samples/dash-demo.html create mode 100644 samples/events.js create mode 100644 src/__test__/tracker.test.js create mode 100644 src/index.js create mode 100644 src/tracker.js create mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..d604723 --- /dev/null +++ b/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["@babel/preset-env"], + "plugins": ["@babel/plugin-transform-modules-commonjs"] +} diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..30673a0 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,15 @@ +{ + "extends": "standard", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module" + }, + "plugins": [ + "standard" + ], + "globals": { + "newrelic": true, + "nrvideo": true, + "shaka": true + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d671809 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +.DS_Store +*.swp +*.swo +*.orig +.idea +ext/ +.vscode + +# Dependencies +node_modules +bower_components + +# temp and output +dist/ +coverage/ +.nyc_output +*.zip + +# logs +*.log \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8c977cd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# CHANGELOG + +## Unreleased + +## [0.2.0] - 2017/11/28 +### Lib +- Upgraded to use lib version `0.9.1+`. + +## [0.1.0] - +- First Version \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..0e59d90 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# CONTRIBUTING + +## Code Standards +This project follows [Standard Javascript](https://standardjs.com/) specifications. + +The changelog format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). + +This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +### Eslint & Standard +Use eslint to help you maintain code standards: +```bash +npm install -g standard +``` + +## NPM Commands +Remember to run `npm install` the first time. + +Run `npm run build` to build the solution. You can find the output inside `dist` folder. + +Run `npm run watch` to watch the files inside `src` and run a build everytime a file is changed. + +Use `build:dev` and `watch:dev` to generate human-readable dist files. + +Use `npm run test` to run tests and coverage. + +Use `npm run doc` to generate documentation page. + +Use `npm run zip` to generate a deployable zip file. Its password will be `newrelic`. + +Use `npm run clean` to clear any generated files. \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ef6401d --- /dev/null +++ b/Dockerfile @@ -0,0 +1 @@ +FROM node:7 diff --git a/EULA.md b/EULA.md new file mode 100644 index 0000000..90f9ed6 --- /dev/null +++ b/EULA.md @@ -0,0 +1,119 @@ +# FIT Instrumentation End User License Agreement +NEW RELIC, INC. FIT INSTRUMENTATION END USER LICENSE AGREEMENT In connection +with the work provided by New Relic’s Field Instrumentation Team, you may be +provided with certain custom-created software to enable, optimize, or enhance +your use of New Relic’s Services. By downloading, installing, authorizing +installation, or using the FIT Instrumentation with your Underlying Software +(defined below), you (“Customer”) agree to the terms and conditions herein +(“Agreement”) with New Relic, Inc., a Delaware corporation with offices located +at 188 Spear Street, Suite 1200 San Francisco, CA 94105 (“New Relic”), +(collectively the “Parties”). Capitalized terms not defined herein shall have +the meanings set forth in the New Relic Terms of Service (the “Terms of +Service”) available here: http://newrelic.com/terms +IF YOU DO NOT AGREE TO THIS AGREEMENT, PLEASE DO NOT USE THE FIT INSTRUMENTATION. +1. DEFINITIONS +“FIT Instrumentation” means the New Relic custom-made software, +including but not limited to connectors, extensions, and plugins, provided by +New Relic to Customer to enable the Services to operate with certain third party +or Customer software or systems (“Underlying Software”). For the purposes of the +Terms of Service, the FIT Instrumentation shall be treated like an Agent, +subject to the separate terms herein. +2. USE OF THE FIT INSTRUMENTATION +2.1 Software Evaluation License. Subject to the terms herein, New Relic grants +to Customer a limited, non-exclusive, non-transferrable, non-sublicensable right +to install, use, and configure the FIT Instrumentation solely as needed to +enable the Services for internal evaluation purposes. New Relic reserves all +rights and licenses not expressly granted herein. +2.2 Ownership. As between the Parties, New Relic owns all right, title, and +interest to the FIT Instrumentation and Feedback, including but not limited to +any intellectual property and proprietary rights therein. Customer retains all +right, title, and interest in any Customer Data processed by the FIT +Instrumentation in connection with the Services. +2.3 Feedback. Customer agrees to provide feedback, suggestions, ideas, requests +or recommendations (“Feedback”) regarding the FIT Instrumentation, and hereby +irrevocably assigns all intellectual property and proprietary rights it holds in +the Feedback to New Relic. +2.4 Notice. Customer acknowledges and agrees that the FIT Instrumentation is +made to work with the Underlying Software as configured at the time of creation +and there is no guarantee that FIT Instrumentation will continue to work in the +event Customer changes, replaces, upgrades versions of, updates, or otherwise +changes the Underlying Software (an “Upgrade Event”). Customer shall hold New +Relic harmless from any claims or damages arising from Customer’s Upgrade Event. +2.5 Restrictions. Customer will not: (i) use the FIT Instrumentation except as +permitted hereunder; (ii) distribute, sell, sublicense, or otherwise transfer +the FIT Instrumentation; (iii) decompile, disassemble or reverse engineer any +software underlying the FIT Instrumentation; (iv) use the FIT Instrumentation +intending to damage, disable, overburden or impair any New Relic server or +network(s) connected to any New Relic server or interfere with any other party’s +use and enjoyment of the Services; (v) use the FIT Instrumentation to defraud, +defame, abuse, harass, stalk, threaten or infringe the rights of privacy or +other intellectual property rights of others or otherwise violate any applicable +law; (vi) circumvent or modify any security technologies included as part of the +FIT Instrumentation; or (vii) attempt or permit any third party to do any of the +foregoing. New Relic may suspend usage of the Services by any user, without +notice, pending any investigation of misuse. +3. CONFIDENTIALITY +3.1 Definition. “Confidential Information” means: (a) the FIT Instrumentation, +and any features, results or output produced by, and other information relating +to the FIT Instrumentation (including, without limitation, all Feedback); and +(b) any business or technical information of New Relic including but not limited +to any technical information, research, development, know-how that a reasonable +person would understand to be confidential. +3.2 Restrictions. Customer will not use or disclose any Confidential +Information, except as necessary for the performance of this Agreement. Customer +will use all reasonable efforts to protect Confidential Information from +unauthorized use or disclosure, but in no event less than the efforts that it +ordinarily uses with respect to its own proprietary information. Customer may +disclose Confidential Information to those of its employees who have a bona fide +need to know such Confidential Information for the performance of this +Agreement; provided that each such employee first executes a written agreement +that contains use and nondisclosure restrictions at least as protective as those +set forth herein. Confidential Information shall not include any information +that: (a) is or becomes generally known to the public through no fault or breach +of this Agreement by Customer; (b) is rightfully known by Customer at the time +of disclosure without an obligation of confidentiality; (c) is independently +developed by Customer without access or use of any Confidential Information; or +(d) is rightfully obtained from a third party without restriction on use or +disclosure. +4. DISCLAIMER +4.1 DISCLAIMER. FIT INSTRUMENTATION IS PROVIDED AS-IS AND AS-AVAILABLE AND NEW +RELIC DISCLAIMS AND MAKES NO WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING +ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, +TITLE OR NON-INFRINGEMENT AND WHETHER OR NOT ARISING THROUGH A COURSE OF +DEALING. FIT INSTRUMENTATION IS NOT GUARANTEED TO BE ERROR-FREE, COMPATIBLE WITH +THE UNDERLYING SOFTWARE. , OR THAT CUSTOMER WILL ACHIEVE ANY RESULTS FROM USE OF +THE FIT INSTRUMENTATION THEREFROM. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES OR LIMITATIONS ON APPLICABLE STATUTORY RIGHTS OF A +CONSUMER, SO THE ABOVE EXCLUSION AND LIMITATIONS MAY NOT APPLY TO THE CUSTOMER. +4.2 LIMITATION OF LIABILITY. IN NO EVENT WILL NEW RELIC BE LIABLE TO CUSTOMER OR +ANY THIRD PARTY FOR DAMAGES OF ANY KIND, INCLUDING, WITHOUT LIMITATION, DIRECT, +SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES (INCLUDING LOSS OF USE, +DATA, BUSINESS, OR PROFITS) ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT +OR THE INSTALLATION, USE OR INABILITY TO USE THE FIT INSTRUMENTATION OR FOR ANY +ERROR OR DEFECT IN THE FIT INSTRUMENTATION OR THE SERVICES, WHETHER SUCH +LIABILITY ARISES FROM ANY CLAIM BASED UPON CONTRACT, WARRANTY, TORT, STRICT +LIABILITY, OR OTHERWISE, WHETHER OR NOT NEW RELIC HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH LOSS OR DAMAGE. THE PARTIES HAVE AGREED THAT THESE +LIMITATIONS WILL SURVIVE AND APPLY EVEN IF ANY LIMITED REMEDY SPECIFIED IN THIS +AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. +4.3 EVALUATION VERSION. Customer agrees and acknowledges that: (a) the FIT +Instrumentation is not an official product and has not been commercially +released for sale by New Relic; (b) the FIT Instrumentation may not operate +properly, being in final form, or fully functional; (c) the FIT Instrumentation +may contain errors, security vulnerabilities, design flaws, or other problems; +(d) it may not be possible to make the FIT Instrumentation fully functional; (e) +the information obtained using the FIT Instrumentation may not be accurate; (f) +use of the FIT Instrumentation may result in unexpected results, loss of data, +delays or other unpredictable damages or loss; (g) New Relic is under no +obligation to release a commercial version of the FIT Instrumentation; and (h) +New Relic has the right unilaterally to abandon development of the FIT +Instrumentation, at any time and without any obligation or liability to +Customer. +5. GENERAL PROVISIONS +5.1 Terms of Service. This Agreement and the Terms of Service constitute the +entire and exclusive agreement between New Relic and Customer with respect to +the FIT Instrumentation. To the extent of a conflict between the Agreement and +the Terms of Service, this Agreement shall govern with respect to the FIT +Instrumentation only. +// +If you need additional help, get support at support.newrelic.com. \ No newline at end of file diff --git a/README.md b/README.md index c4c473a..a33f6eb 100644 --- a/README.md +++ b/README.md @@ -1 +1,64 @@ -# video-dash-js +[![New Relic Experimental header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Experimental.png)](https://opensource.newrelic.com/oss-category/#new-relic-experimental) + +# New Relic Dash Tracker + +New Relic video tracking for Dash Player. + +## Requirements + +This video monitor solutions works on top of New Relic's **Browser Agent**. + +## Build + +Install dependencies: + +``` +$ npm install +``` + +And build: + +``` +$ npm run build:dev +``` + +Or if you need a production build: + +``` +$ npm run build +``` + +// export NODE_OPTIONS=--openssl-legacy-provider + +## Usage + +Load **scripts** inside `dist` folder into your page. + +```html + +``` + +```javascript +// var player = new shaka.Player(...) +nrvideo.Core.addTracker(new nrvideo.DashTracker(player)); +``` + +## Support + +New Relic has open-sourced this project. This project is provided AS-IS WITHOUT WARRANTY OR DEDICATED SUPPORT. Issues and contributions should be reported to the project here on GitHub. + +We encourage you to bring your experiences and questions to the [Explorers Hub](https://discuss.newrelic.com) where our community members collaborate on solutions and new ideas. + +## Contributing + +We encourage your contributions to improve New Relic Shaka Tracker! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project. If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at opensource@newrelic.com. + +**A note about vulnerabilities** + +As noted in our [security policy](../../security/policy), New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals. + +If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through [our bug bounty program](https://docs.newrelic.com/docs/security/security-privacy/information-security/report-security-vulnerabilities/). + +## License + +New Relic Dash Tracker is licensed under the [Apache 2.0](http://apache.org/licenses/LICENSE-2.0.txt) License. diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..9dcccca --- /dev/null +++ b/babel.config.js @@ -0,0 +1,4 @@ +module.exports = { + presets: ["@babel/preset-env"], + plugins: ["@babel/plugin-transform-modules-commonjs"], +}; diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..9d7a42d --- /dev/null +++ b/jest.config.js @@ -0,0 +1,10 @@ +module.exports = { + testEnvironment: "node", + moduleFileExtensions: ["js", "jsx"], + transform: { + "^.+\\.jsx?$": "babel-jest", + }, + transformIgnorePatterns: ["node_modules/(?!@shotgunjed)/"], + + testMatch: ["**/__tests__/**/*.js?(x)", "**/?(*.)+(spec|test).js?(x)"], +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8e84df6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,10093 @@ +{ + "name": "newrelic-video-dash", + "version": "0.2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "newrelic-video-dash", + "version": "0.2.0", + "license": "MIT", + "dependencies": { + "newrelic-video-core": "git+https://github.com/newrelic/video-core-js.git" + }, + "devDependencies": { + "@babel/cli": "^7.25.6", + "@babel/core": "^7.25.2", + "@babel/node": "^7.25.0", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/preset-env": "^7.25.4", + "@babel/register": "^7.24.6", + "babel-jest": "^29.7.0", + "babel-loader": "^9.1.3", + "jest": "^29.7.0", + "videojs-ima": "^0.6.0", + "webpack": "^5.94.0", + "webpack-cli": "^5.1.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.25.6.tgz", + "integrity": "sha512-Z+Doemr4VtvSD2SNHTrkiFZ1LX+JI6tyRXAAOb4N9khIuPyoEPmTPJarPm8ljJV1D6bnMQjyHMWTT9NeKbQuXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "commander": "^6.2.0", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.6.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/cli/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "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.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", + "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.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "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.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "license": "MIT", + "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-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/node": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.25.0.tgz", + "integrity": "sha512-fgdlIcf1vLeZ6gUHcl799Wbk6no5tnkGi6t1gpAb1a97ZB+KCRp8Sgb7acGTjnFhOzqzcsbJ4+wzewqb6JM0tA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/register": "^7.24.6", + "commander": "^6.2.0", + "core-js": "^3.30.2", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.14.0", + "v8flags": "^3.1.1" + }, + "bin": { + "babel-node": "bin/babel-node.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/node/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.0", + "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.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", + "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", + "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", + "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "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, + "license": "MIT", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", + "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", + "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@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.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", + "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.4", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@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.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@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.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", + "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", + "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz", + "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.4", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@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.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@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.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "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, + "license": "MIT", + "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/register": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz", + "integrity": "sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.6", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/register/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/register/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "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, + "license": "MIT" + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "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, + "license": "ISC", + "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/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, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/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, + "license": "MIT", + "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/reporters/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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/test-sequencer/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "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, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "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, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "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, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz", + "integrity": "sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "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, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "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, + "license": "BSD-3-Clause", + "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-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, + "license": "MIT", + "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.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "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.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@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" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "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, + "license": "Apache-2.0", + "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, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001655", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", + "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz", + "integrity": "sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", + "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": 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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-shim": { + "version": "4.5.9", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.9.tgz", + "integrity": "sha1-Kh4rnlg/9f7Qwgo+4svz91IwpcA=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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/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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "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, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "ISC" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "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": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true, + "dependencies": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "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/import-local/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, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/individual": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-2.0.0.tgz", + "integrity": "sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c=", + "dev": true + }, + "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "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, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "optional": 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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", + "dev": true + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "BSD-3-Clause", + "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/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, + "license": "BSD-3-Clause", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/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, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "license": "MIT", + "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, + "license": "BSD-3-Clause", + "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.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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-changed-files/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, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/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, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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-haste-map/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-haste-map/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, + "license": "MIT", + "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-haste-map/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/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, + "license": "MIT", + "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-runner/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-runner/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, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runner/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, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "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, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash-compat": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.2.tgz", + "integrity": "sha1-xpQBKKnTD46QLNLPmf0Muk7PwYM=", + "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, + "license": "MIT" + }, + "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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/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, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "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, + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/newrelic-video-core": { + "version": "0.32.2", + "resolved": "git+ssh://git@github.com/newrelic/video-core-js.git#c437dac0172e6e709b445f4d15a0dc060c433592", + "integrity": "sha512-bar6Ow7J3FbkG/uBWxaSFcuB7s4bqEIufTkbyqednIQIx3gLjX3WDVlLRaDw950ZFiQhKS9AFNgpa90/DVRvQQ==", + "license": "MIT" + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-environment-flags/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, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "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, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "ISC", + "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, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", + "dev": true + }, + "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, + "license": "MIT", + "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/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "license": "BSD-2-Clause", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/rust-result": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rust-result/-/rust-result-1.0.0.tgz", + "integrity": "sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=", + "dev": true, + "dependencies": { + "individual": "^2.0.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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" + } + ], + "license": "MIT" + }, + "node_modules/safe-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz", + "integrity": "sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=", + "dev": true, + "dependencies": { + "rust-result": "^1.0.0" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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, + "license": "BSD-3-Clause" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "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/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "BSD-3-Clause" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tsml/-/tsml-1.0.1.tgz", + "integrity": "sha1-ifghi52eJX9H1/a1bQHFpNLGj8M=", + "deprecated": "no longer maintained", + "dev": true + }, + "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, + "license": "MIT", + "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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "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/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/video.js": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-5.3.0.tgz", + "integrity": "sha1-TfEQCmvy0KmVBUhVjhGxdeb1MOg=", + "dev": true, + "dependencies": { + "global": "^4.3.0", + "lodash-compat": "^3.9.3", + "object.assign": "^4.0.1", + "safe-json-parse": "^4.0.0", + "tsml": "1.0.1", + "videojs-font": "1.4.0", + "videojs-ie8": "1.1.0", + "videojs-swf": "5.0.1", + "vtt.js": "git+https://github.com/gkatsev/vtt.js.git#vjs-v0.12.1", + "xhr": "~2.2.0" + } + }, + "node_modules/videojs-contrib-ads": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/videojs-contrib-ads/-/videojs-contrib-ads-3.1.3.tgz", + "integrity": "sha1-/O0bdyfqMPHvUs6KjEATI3i7r7c=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/videojs-font": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-1.4.0.tgz", + "integrity": "sha1-WXNh0v8nXKmtVMQn1Xxce0pg4RM=", + "dev": true + }, + "node_modules/videojs-ie8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/videojs-ie8/-/videojs-ie8-1.1.0.tgz", + "integrity": "sha1-zy0dZPnjMw0lW29zt3WJnhmmOCM=", + "dev": true, + "dependencies": { + "es5-shim": "^4.1.4" + } + }, + "node_modules/videojs-ima": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/videojs-ima/-/videojs-ima-0.6.0.tgz", + "integrity": "sha1-Gsa/OOyRKq4TO/NqFpdsmJIMPNI=", + "dev": true, + "dependencies": { + "video.js": "~5.3", + "videojs-contrib-ads": "~3.1.2" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/videojs-swf": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/videojs-swf/-/videojs-swf-5.0.1.tgz", + "integrity": "sha1-IYa9nsX/xdBl1dlWyw3yUz/6KYM=", + "dev": true + }, + "node_modules/vtt.js": { + "version": "0.12.1", + "resolved": "git+ssh://git@github.com/gkatsev/vtt.js.git#8ea664e257ec7b5c092f58ac989e3134ff536a7a", + "integrity": "sha512-NUl0gP8fSBQgoCFIV1tWBPJv1KxV9VrKrYbVFdVicdnAQUCsIZ3AXZpSQEkae7GkVQk8HzA2zyVmTirSWTnQcA==", + "dev": true, + "license": "Apache-2.0" + }, + "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, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/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, + "license": "MIT", + "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/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/webpack/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, + "license": "MIT" + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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/wrap-ansi/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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, + "license": "MIT" + }, + "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, + "license": "ISC" + }, + "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, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xhr": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.2.2.tgz", + "integrity": "sha1-LuclcYafhobUFVmp6ihsGJcUNf8=", + "dev": true, + "dependencies": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "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, + "license": "ISC", + "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, + "license": "ISC" + }, + "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, + "license": "MIT", + "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": "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, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5739fc3 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "name": "newrelic-video-dash", + "version": "0.2.0", + "description": "New relic tracker for dash player", + "main": "src/index.js", + "scripts": { + "test": "jest", + "build": "webpack -p", + "build:dev": "webpack --mode development", + "watch": "webpack -p --progress --color --watch", + "watch:dev": "webpack --progress --color --watch --mode development", + "prezip": "npm run build", + "zip": "zip -P newrelic -x '*.DS_Store' -r shaka.zip dist samples README.md CHANGELOG.md EULA.md", + "clean": "rm -rf dist *.zip", + "deploy": "node scripts/deploy.js" + }, + "repository": { + "type": "git", + "url": "" + }, + "author": "Malay Chandan", + "license": "MIT", + "dependencies": { + "newrelic-video-core": "git+https://github.com/newrelic/video-core-js.git" + }, + "devDependencies": { + "@babel/cli": "^7.25.6", + "@babel/core": "^7.25.2", + "@babel/node": "^7.25.0", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/preset-env": "^7.25.4", + "@babel/register": "^7.24.6", + "babel-jest": "^29.7.0", + "babel-loader": "^9.1.3", + "jest": "^29.7.0", + "videojs-ima": "^0.6.0", + "webpack": "^5.94.0", + "webpack-cli": "^5.1.4" + } +} diff --git a/samples/add/dash-add.html b/samples/add/dash-add.html new file mode 100644 index 0000000..fdbb691 --- /dev/null +++ b/samples/add/dash-add.html @@ -0,0 +1,28 @@ + + + + + Dash Ad Demo + + + + + + + +

Dash Player with Ad Demo

+
+ + +
+
+ + + + diff --git a/samples/add/dash-add.js b/samples/add/dash-add.js new file mode 100644 index 0000000..5015868 --- /dev/null +++ b/samples/add/dash-add.js @@ -0,0 +1,80 @@ +const myPlayer = document.querySelector("#myPlayer"); + +const player = new dashjs.MediaPlayer().create(); + +player.initialize( + myPlayer, + "http://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd", + true +); + +// set up the IMA SDK + +const adContainer = document.getElementById("ad-container"); + +//This class represents a container for displaying ads. +//The SDK will automatically create structures inside the containerElement parameter to house video and overlay ads. + +const adDisplayContainer = new google.ima.AdDisplayContainer(adContainer); +adDisplayContainer.initialize(); + +//AdsLoader allows clients to request ads from ad servers. +//To do so, users must register for the AdsManagerLoadedEvent event and then request ads. +const adsLoader = new google.ima.AdsLoader(adDisplayContainer); + +let adsManager; + +adsLoader.addEventListener( + google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, + onAdsManagerLoaded, + false +); + +//A class for specifying properties of the ad request. +let adsRequest = new google.ima.AdsRequest(); +adsRequest.adTagUrl = + "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator="; + +adsLoader.requestAds(adsRequest); + +function onAdsManagerLoaded(adsManagerLoadedEvent) { + adsManager = adsManagerLoadedEvent.getAdsManager(adContainer); + + adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); + adsManager.addEventListener( + google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, + onContentPauseRequested + ); + adsManager.addEventListener( + google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, + onContentResumeRequested + ); + + try { + adsManager.init(640, 360, google.ima.ViewMode.NORMAL); + adsManager.start(); + } catch (adError) { + console.log(adError); + } +} + +function onAdError(adErrorEvent) { + console.log(adErrorEvent.getError()); + if (adsManager) { + adsManager.destroy(); + } +} + +function onContentPauseRequested() { + player.pause(); +} + +function onContentResumeRequested() { + player.play(); +} + +const playButton = document.getElementById("play-button"); + +document.getElementById("play-button").addEventListener("click", () => { + console.log("clicked"); +}); diff --git a/samples/agent.js b/samples/agent.js new file mode 100644 index 0000000..45db9e8 --- /dev/null +++ b/samples/agent.js @@ -0,0 +1,3809 @@ +window.NREUM || (NREUM = {}); +NREUM.init = { + distributed_tracing: { enabled: true }, + privacy: { cookies_enabled: true }, + ajax: { deny_list: ["bam.nr-data.net"] }, +}; + +NREUM.loader_config = { + accountID: "1", + trustKey: "1", + agentID: "601493331", + licenseKey: "NRBR-44eebc6b6eb7f9a60af", + applicationID: "601493331", +}; +NREUM.info = { + beacon: "bam.nr-data.net", + errorBeacon: "bam.nr-data.net", + licenseKey: "NRBR-44eebc6b6eb7f9a60af", + applicationID: "601493331", + sa: 1, +}; /*! For license information please see nr-loader-spa-1.264.0.min.js.LICENSE.txt */ +(() => { + var e, + t, + r = { + 2983: (e, t, r) => { + "use strict"; + r.d(t, { + D0: () => v, + gD: () => y, + Vp: () => s, + oC: () => x, + fr: () => _, + jD: () => P, + hR: () => A, + xN: () => b, + x1: () => c, + aN: () => T, + V: () => j, + }); + var n = r(384), + i = r(7864); + const o = { + beacon: n.NT.beacon, + errorBeacon: n.NT.errorBeacon, + licenseKey: void 0, + applicationID: void 0, + sa: void 0, + queueTime: void 0, + applicationTime: void 0, + ttGuid: void 0, + user: void 0, + account: void 0, + product: void 0, + extra: void 0, + jsAttributes: {}, + userAttributes: void 0, + atts: void 0, + transactionName: void 0, + tNamePlain: void 0, + }, + a = {}; + function s(e) { + if (!e) + throw new Error("All info objects require an agent identifier!"); + if (!a[e]) throw new Error("Info for ".concat(e, " was never set")); + return a[e]; + } + function c(e, t) { + if (!e) + throw new Error("All info objects require an agent identifier!"); + a[e] = (0, i.a)(t, o); + const r = (0, n.nY)(e); + r && (r.info = a[e]); + } + var u = r(993); + const d = (e) => { + if (!e || "string" != typeof e) return !1; + try { + document.createDocumentFragment().querySelector(e); + } catch { + return !1; + } + return !0; + }; + var l = r(2614), + f = r(944); + const h = "[data-nr-mask]", + g = () => { + const e = { + mask_selector: "*", + block_selector: "[data-nr-block]", + mask_input_options: { + color: !1, + date: !1, + "datetime-local": !1, + email: !1, + month: !1, + number: !1, + range: !1, + search: !1, + tel: !1, + text: !1, + time: !1, + url: !1, + week: !1, + textarea: !1, + select: !1, + password: !0, + }, + }; + return { + ajax: { + deny_list: void 0, + block_internal: !0, + enabled: !0, + harvestTimeSeconds: 10, + autoStart: !0, + }, + distributed_tracing: { + enabled: void 0, + exclude_newrelic_header: void 0, + cors_use_newrelic_header: void 0, + cors_use_tracecontext_headers: void 0, + allowed_origins: void 0, + }, + feature_flags: [], + generic_events: { + enabled: !0, + harvestTimeSeconds: 30, + autoStart: !0, + }, + harvest: { tooManyRequestsDelay: 60 }, + jserrors: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, + logging: { + enabled: !0, + harvestTimeSeconds: 10, + autoStart: !0, + level: u.p_.INFO, + }, + metrics: { enabled: !0, autoStart: !0 }, + obfuscate: void 0, + page_action: { enabled: !0 }, + page_view_event: { enabled: !0, autoStart: !0 }, + page_view_timing: { + enabled: !0, + harvestTimeSeconds: 30, + long_task: !1, + autoStart: !0, + }, + privacy: { cookies_enabled: !0 }, + proxy: { assets: void 0, beacon: void 0 }, + session: { expiresMs: l.wk, inactiveMs: l.BB }, + session_replay: { + autoStart: !0, + enabled: !1, + harvestTimeSeconds: 60, + preload: !1, + sampling_rate: 10, + error_sampling_rate: 100, + collect_fonts: !1, + inline_images: !1, + inline_stylesheet: !0, + fix_stylesheets: !0, + mask_all_inputs: !0, + get mask_text_selector() { + return e.mask_selector; + }, + set mask_text_selector(t) { + d(t) + ? (e.mask_selector = "".concat(t, ",").concat(h)) + : "" === t || null === t + ? (e.mask_selector = h) + : (0, f.R)(5, t); + }, + get block_class() { + return "nr-block"; + }, + get ignore_class() { + return "nr-ignore"; + }, + get mask_text_class() { + return "nr-mask"; + }, + get block_selector() { + return e.block_selector; + }, + set block_selector(t) { + d(t) + ? (e.block_selector += ",".concat(t)) + : "" !== t && (0, f.R)(6, t); + }, + get mask_input_options() { + return e.mask_input_options; + }, + set mask_input_options(t) { + t && "object" == typeof t + ? (e.mask_input_options = { ...t, password: !0 }) + : (0, f.R)(7, t); + }, + }, + session_trace: { + enabled: !0, + harvestTimeSeconds: 10, + autoStart: !0, + }, + soft_navigations: { + enabled: !0, + harvestTimeSeconds: 10, + autoStart: !0, + }, + spa: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, + ssl: void 0, + }; + }, + p = {}, + m = "All configuration objects require an agent identifier!"; + function v(e) { + if (!e) throw new Error(m); + if (!p[e]) + throw new Error("Configuration for ".concat(e, " was never set")); + return p[e]; + } + function b(e, t) { + if (!e) throw new Error(m); + p[e] = (0, i.a)(t, g()); + const r = (0, n.nY)(e); + r && (r.init = p[e]); + } + function y(e, t) { + if (!e) throw new Error(m); + var r = v(e); + if (r) { + for (var n = t.split("."), i = 0; i < n.length - 1; i++) + if ("object" != typeof (r = r[n[i]])) return; + r = r[n[n.length - 1]]; + } + return r; + } + const w = { + accountID: void 0, + trustKey: void 0, + agentID: void 0, + licenseKey: void 0, + applicationID: void 0, + xpid: void 0, + }, + R = {}; + function x(e) { + if (!e) + throw new Error( + "All loader-config objects require an agent identifier!" + ); + if (!R[e]) + throw new Error("LoaderConfig for ".concat(e, " was never set")); + return R[e]; + } + function T(e, t) { + if (!e) + throw new Error( + "All loader-config objects require an agent identifier!" + ); + R[e] = (0, i.a)(t, w); + const r = (0, n.nY)(e); + r && (r.loader_config = R[e]); + } + const A = (0, n.dV)().o; + var E = r(6154), + N = r(9324); + const S = { + buildEnv: N.F3, + distMethod: N.Xs, + version: N.xv, + originTime: E.WN, + }, + O = { + customTransaction: void 0, + disabled: !1, + isolatedBacklog: !1, + loaderType: void 0, + maxBytes: 3e4, + onerror: void 0, + origin: "" + E.gm.location, + ptid: void 0, + releaseIds: {}, + appMetadata: {}, + session: void 0, + denyList: void 0, + harvestCount: 0, + timeKeeper: void 0, + }, + I = {}; + function _(e) { + if (!e) + throw new Error("All runtime objects require an agent identifier!"); + if (!I[e]) + throw new Error("Runtime for ".concat(e, " was never set")); + return I[e]; + } + function j(e, t) { + if (!e) + throw new Error("All runtime objects require an agent identifier!"); + I[e] = { ...(0, i.a)(t, O), ...S }; + const r = (0, n.nY)(e); + r && (r.runtime = I[e]); + } + function P(e) { + return (function (e) { + try { + const t = s(e); + return !!t.licenseKey && !!t.errorBeacon && !!t.applicationID; + } catch (e) { + return !1; + } + })(e); + } + }, + 7864: (e, t, r) => { + "use strict"; + r.d(t, { a: () => i }); + var n = r(944); + function i(e, t) { + try { + if (!e || "object" != typeof e) return (0, n.R)(3); + if (!t || "object" != typeof t) return (0, n.R)(4); + const r = Object.create( + Object.getPrototypeOf(t), + Object.getOwnPropertyDescriptors(t) + ), + o = 0 === Object.keys(r).length ? e : r; + for (let a in o) + if (void 0 !== e[a]) + try { + if (null === e[a]) { + r[a] = null; + continue; + } + Array.isArray(e[a]) && Array.isArray(t[a]) + ? (r[a] = Array.from(new Set([...e[a], ...t[a]]))) + : "object" == typeof e[a] && "object" == typeof t[a] + ? (r[a] = i(e[a], t[a])) + : (r[a] = e[a]); + } catch (e) { + (0, n.R)(1, e); + } + return r; + } catch (e) { + (0, n.R)(2, e); + } + } + }, + 9324: (e, t, r) => { + "use strict"; + r.d(t, { F3: () => i, Xs: () => o, Yq: () => a, xv: () => n }); + const n = "1.264.0", + i = "PROD", + o = "CDN", + a = "2.0.0-alpha.12"; + }, + 6154: (e, t, r) => { + "use strict"; + r.d(t, { + A4: () => s, + OF: () => d, + RI: () => i, + Vr: () => h, + WN: () => g, + bv: () => o, + gm: () => a, + lR: () => f, + m: () => u, + mw: () => c, + sb: () => l, + }); + var n = r(1863); + const i = "undefined" != typeof window && !!window.document, + o = + "undefined" != typeof WorkerGlobalScope && + (("undefined" != typeof self && + self instanceof WorkerGlobalScope && + self.navigator instanceof WorkerNavigator) || + ("undefined" != typeof globalThis && + globalThis instanceof WorkerGlobalScope && + globalThis.navigator instanceof WorkerNavigator)), + a = i + ? window + : "undefined" != typeof WorkerGlobalScope && + (("undefined" != typeof self && + self instanceof WorkerGlobalScope && + self) || + ("undefined" != typeof globalThis && + globalThis instanceof WorkerGlobalScope && + globalThis)), + s = "complete" === a?.document?.readyState, + c = Boolean("hidden" === a?.document?.visibilityState), + u = "" + a?.location, + d = /iPad|iPhone|iPod/.test(a.navigator?.userAgent), + l = d && "undefined" == typeof SharedWorker, + f = (() => { + const e = a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/); + return Array.isArray(e) && e.length >= 2 ? +e[1] : 0; + })(), + h = !!a.navigator?.sendBeacon, + g = Date.now() - (0, n.t)(); + }, + 4777: (e, t, r) => { + "use strict"; + r.d(t, { J: () => o }); + var n = r(944); + const i = { agentIdentifier: "", ee: void 0 }; + class o { + constructor(e) { + try { + if ("object" != typeof e) return (0, n.R)(8); + (this.sharedContext = {}), + Object.assign(this.sharedContext, i), + Object.entries(e).forEach((e) => { + let [t, r] = e; + Object.keys(i).includes(t) && (this.sharedContext[t] = r); + }); + } catch (e) { + (0, n.R)(9, e); + } + } + } + }, + 7295: (e, t, r) => { + "use strict"; + r.d(t, { Xv: () => a, gX: () => i, iW: () => o }); + var n = []; + function i(e) { + if (!e || o(e)) return !1; + if (0 === n.length) return !0; + for (var t = 0; t < n.length; t++) { + var r = n[t]; + if ("*" === r.hostname) return !1; + if (s(r.hostname, e.hostname) && c(r.pathname, e.pathname)) + return !1; + } + return !0; + } + function o(e) { + return void 0 === e.hostname; + } + function a(e) { + if (((n = []), e && e.length)) + for (var t = 0; t < e.length; t++) { + let r = e[t]; + if (!r) continue; + 0 === r.indexOf("http://") + ? (r = r.substring(7)) + : 0 === r.indexOf("https://") && (r = r.substring(8)); + const i = r.indexOf("/"); + let o, a; + i > 0 + ? ((o = r.substring(0, i)), (a = r.substring(i))) + : ((o = r), (a = "")); + let [s] = o.split(":"); + n.push({ hostname: s, pathname: a }); + } + } + function s(e, t) { + return !(e.length > t.length) && t.indexOf(e) === t.length - e.length; + } + function c(e, t) { + return ( + 0 === e.indexOf("/") && (e = e.substring(1)), + 0 === t.indexOf("/") && (t = t.substring(1)), + "" === e || e === t + ); + } + }, + 1687: (e, t, r) => { + "use strict"; + r.d(t, { Ak: () => s, Ze: () => d, x3: () => c }); + var n = r(7836), + i = r(3606), + o = r(860); + const a = {}; + function s(e, t) { + const r = { staged: !1, priority: o.P[t] || 0 }; + u(e), a[e].get(t) || a[e].set(t, r); + } + function c(e, t) { + e && + a[e] && + (a[e].get(t) && a[e].delete(t), f(e, t, !1), a[e].size && l(e)); + } + function u(e) { + if (!e) throw new Error("agentIdentifier required"); + a[e] || (a[e] = new Map()); + } + function d() { + let e = + arguments.length > 0 && void 0 !== arguments[0] + ? arguments[0] + : "", + t = + arguments.length > 1 && void 0 !== arguments[1] + ? arguments[1] + : "feature", + r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + if ((u(e), !e || !a[e].get(t) || r)) return f(e, t); + (a[e].get(t).staged = !0), l(e); + } + function l(e) { + const t = Array.from(a[e]); + t.every((e) => { + let [t, r] = e; + return r.staged; + }) && + (t.sort((e, t) => e[1].priority - t[1].priority), + t.forEach((t) => { + let [r] = t; + a[e].delete(r), f(e, r); + })); + } + function f(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + const o = e ? n.ee.get(e) : n.ee, + a = i.i.handlers; + if (!o.aborted && o.backlog && a) { + if (r) { + const e = o.backlog[t], + r = a[t]; + if (r) { + for (let t = 0; e && t < e.length; ++t) h(e[t], r); + Object.entries(r).forEach((e) => { + let [t, r] = e; + Object.values(r || {}).forEach((e) => { + e[0].on(t, e[1]); + }); + }); + } + } + o.isolatedBacklog || delete a[t], + (o.backlog[t] = null), + o.emit("drain-" + t, []); + } + } + function h(e, t) { + var r = e[1]; + Object.values(t[r] || {}).forEach((t) => { + var r = e[0]; + if (t[0] === r) { + var n = t[1], + i = e[3], + o = e[2]; + n.apply(i, o); + } + }); + } + }, + 7836: (e, t, r) => { + "use strict"; + r.d(t, { P: () => c, ee: () => u }); + var n = r(384), + i = r(8990), + o = r(2983), + a = r(2646), + s = r(5607); + const c = "nr@context:".concat(s.W), + u = (function e(t, r) { + var n = {}, + s = {}, + d = {}, + l = !1; + try { + l = 16 === r.length && (0, o.fr)(r).isolatedBacklog; + } catch (e) {} + var f = { + on: g, + addEventListener: g, + removeEventListener: function (e, t) { + var r = n[e]; + if (!r) return; + for (var i = 0; i < r.length; i++) r[i] === t && r.splice(i, 1); + }, + emit: function (e, r, n, i, o) { + !1 !== o && (o = !0); + if (u.aborted && !i) return; + t && o && t.emit(e, r, n); + for (var a = h(n), c = p(e), d = c.length, l = 0; l < d; l++) + c[l].apply(a, r); + var g = v()[s[e]]; + g && g.push([f, e, r, a]); + return a; + }, + get: m, + listeners: p, + context: h, + buffer: function (e, t) { + const r = v(); + if (((t = t || "feature"), f.aborted)) return; + Object.entries(e || {}).forEach((e) => { + let [n, i] = e; + (s[i] = t), t in r || (r[t] = []); + }); + }, + abort: function () { + (f._aborted = !0), + Object.keys(f.backlog).forEach((e) => { + delete f.backlog[e]; + }); + }, + isBuffering: function (e) { + return !!v()[s[e]]; + }, + debugId: r, + backlog: l + ? {} + : t && "object" == typeof t.backlog + ? t.backlog + : {}, + isolatedBacklog: l, + }; + return ( + Object.defineProperty(f, "aborted", { + get: () => { + let e = f._aborted || !1; + return e || (t && (e = t.aborted), e); + }, + }), + f + ); + function h(e) { + return e && e instanceof a.y + ? e + : e + ? (0, i.I)(e, c, () => new a.y(c)) + : new a.y(c); + } + function g(e, t) { + n[e] = p(e).concat(t); + } + function p(e) { + return n[e] || []; + } + function m(t) { + return (d[t] = d[t] || e(f, t)); + } + function v() { + return f.backlog; + } + })(void 0, "globalEE"), + d = (0, n.Zm)(); + d.ee || (d.ee = u); + }, + 2646: (e, t, r) => { + "use strict"; + r.d(t, { y: () => n }); + class n { + constructor(e) { + this.contextId = e; + } + } + }, + 9908: (e, t, r) => { + "use strict"; + r.d(t, { d: () => n, p: () => i }); + var n = r(7836).ee.get("handle"); + function i(e, t, r, i, o) { + o + ? (o.buffer([e], i), o.emit(e, t, r)) + : (n.buffer([e], i), n.emit(e, t, r)); + } + }, + 3606: (e, t, r) => { + "use strict"; + r.d(t, { i: () => o }); + var n = r(9908); + o.on = a; + var i = (o.handlers = {}); + function o(e, t, r, o) { + a(o || n.d, i, e, t, r); + } + function a(e, t, r, i, o) { + o || (o = "feature"), e || (e = n.d); + var a = (t[o] = t[o] || {}); + (a[r] = a[r] || []).push([e, i]); + } + }, + 3878: (e, t, r) => { + "use strict"; + r.d(t, { DD: () => c, jT: () => a, sp: () => s }); + var n = r(6154); + let i = !1, + o = !1; + try { + const e = { + get passive() { + return (i = !0), !1; + }, + get signal() { + return (o = !0), !1; + }, + }; + n.gm.addEventListener("test", null, e), + n.gm.removeEventListener("test", null, e); + } catch (e) {} + function a(e, t) { + return i || o ? { capture: !!e, passive: i, signal: t } : !!e; + } + function s(e, t) { + let r = + arguments.length > 2 && void 0 !== arguments[2] && arguments[2], + n = arguments.length > 3 ? arguments[3] : void 0; + window.addEventListener(e, t, a(r, n)); + } + function c(e, t) { + let r = + arguments.length > 2 && void 0 !== arguments[2] && arguments[2], + n = arguments.length > 3 ? arguments[3] : void 0; + document.addEventListener(e, t, a(r, n)); + } + }, + 5607: (e, t, r) => { + "use strict"; + r.d(t, { W: () => n }); + const n = (0, r(9566).bz)(); + }, + 9566: (e, t, r) => { + "use strict"; + r.d(t, { LA: () => s, ZF: () => c, bz: () => a, el: () => u }); + var n = r(6154); + const i = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"; + function o(e, t) { + return e ? 15 & e[t] : (16 * Math.random()) | 0; + } + function a() { + const e = n.gm?.crypto || n.gm?.msCrypto; + let t, + r = 0; + return ( + e && + e.getRandomValues && + (t = e.getRandomValues(new Uint8Array(30))), + i + .split("") + .map((e) => + "x" === e + ? o(t, r++).toString(16) + : "y" === e + ? ((3 & o()) | 8).toString(16) + : e + ) + .join("") + ); + } + function s(e) { + const t = n.gm?.crypto || n.gm?.msCrypto; + let r, + i = 0; + t && t.getRandomValues && (r = t.getRandomValues(new Uint8Array(e))); + const a = []; + for (var s = 0; s < e; s++) a.push(o(r, i++).toString(16)); + return a.join(""); + } + function c() { + return s(16); + } + function u() { + return s(32); + } + }, + 2614: (e, t, r) => { + "use strict"; + r.d(t, { + BB: () => a, + H3: () => n, + g: () => u, + iL: () => c, + tS: () => s, + uh: () => i, + wk: () => o, + }); + const n = "NRBA", + i = "SESSION", + o = 144e5, + a = 18e5, + s = { + STARTED: "session-started", + PAUSE: "session-pause", + RESET: "session-reset", + RESUME: "session-resume", + UPDATE: "session-update", + }, + c = { SAME_TAB: "same-tab", CROSS_TAB: "cross-tab" }, + u = { OFF: 0, FULL: 1, ERROR: 2 }; + }, + 1863: (e, t, r) => { + "use strict"; + function n() { + return Math.floor(performance.now()); + } + r.d(t, { t: () => n }); + }, + 7485: (e, t, r) => { + "use strict"; + r.d(t, { D: () => i }); + var n = r(6154); + function i(e) { + if (0 === (e || "").indexOf("data:")) return { protocol: "data" }; + try { + const t = new URL(e, location.href), + r = { + port: t.port, + hostname: t.hostname, + pathname: t.pathname, + search: t.search, + protocol: t.protocol.slice(0, t.protocol.indexOf(":")), + sameOrigin: + t.protocol === n.gm?.location?.protocol && + t.host === n.gm?.location?.host, + }; + return ( + (r.port && "" !== r.port) || + ("http:" === t.protocol && (r.port = "80"), + "https:" === t.protocol && (r.port = "443")), + r.pathname && "" !== r.pathname + ? r.pathname.startsWith("/") || + (r.pathname = "/".concat(r.pathname)) + : (r.pathname = "/"), + r + ); + } catch (e) { + return {}; + } + } + }, + 944: (e, t, r) => { + "use strict"; + function n(e, t) { + "function" == typeof console.debug && + console.debug( + "New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat( + e + ), + t + ); + } + r.d(t, { R: () => n }); + }, + 5284: (e, t, r) => { + "use strict"; + r.d(t, { t: () => c, B: () => s }); + var n = r(7836), + i = r(6154); + const o = "newrelic"; + const a = new Set(), + s = {}; + function c(e, t) { + const r = n.ee.get(t); + (s[t] ??= {}), + e && + "object" == typeof e && + (a.has(t) || + (r.emit("rumresp", [e]), + (s[t] = e), + a.add(t), + (function () { + let e = + arguments.length > 0 && void 0 !== arguments[0] + ? arguments[0] + : {}; + try { + i.gm.dispatchEvent(new CustomEvent(o, { detail: e })); + } catch (e) {} + })({ loaded: !0 }))); + } + }, + 8990: (e, t, r) => { + "use strict"; + r.d(t, { I: () => i }); + var n = Object.prototype.hasOwnProperty; + function i(e, t, r) { + if (n.call(e, t)) return e[t]; + var i = r(); + if (Object.defineProperty && Object.keys) + try { + return ( + Object.defineProperty(e, t, { + value: i, + writable: !0, + enumerable: !1, + }), + i + ); + } catch (e) {} + return (e[t] = i), i; + } + }, + 6389: (e, t, r) => { + "use strict"; + function n(e) { + var t = this; + let r = + arguments.length > 1 && void 0 !== arguments[1] + ? arguments[1] + : 500, + n = + arguments.length > 2 && void 0 !== arguments[2] + ? arguments[2] + : {}; + const i = n?.leading || !1; + let o; + return function () { + for (var n = arguments.length, a = new Array(n), s = 0; s < n; s++) + a[s] = arguments[s]; + i && + void 0 === o && + (e.apply(t, a), + (o = setTimeout(() => { + o = clearTimeout(o); + }, r))), + i || + (clearTimeout(o), + (o = setTimeout(() => { + e.apply(t, a); + }, r))); + }; + } + function i(e) { + var t = this; + let r = !1; + return function () { + if (!r) { + r = !0; + for ( + var n = arguments.length, i = new Array(n), o = 0; + o < n; + o++ + ) + i[o] = arguments[o]; + e.apply(t, i); + } + }; + } + r.d(t, { J: () => i, s: () => n }); + }, + 3304: (e, t, r) => { + "use strict"; + r.d(t, { A: () => o }); + var n = r(7836); + const i = () => { + const e = new WeakSet(); + return (t, r) => { + if ("object" == typeof r && null !== r) { + if (e.has(r)) return; + e.add(r); + } + return r; + }; + }; + function o(e) { + try { + return JSON.stringify(e, i()); + } catch (e) { + try { + n.ee.emit("internal-error", [e]); + } catch (e) {} + } + } + }, + 5289: (e, t, r) => { + "use strict"; + r.d(t, { GG: () => o, sB: () => a }); + var n = r(3878); + function i() { + return ( + "undefined" == typeof document || "complete" === document.readyState + ); + } + function o(e, t) { + if (i()) return e(); + (0, n.sp)("load", e, t); + } + function a(e) { + if (i()) return e(); + (0, n.DD)("DOMContentLoaded", e); + } + }, + 384: (e, t, r) => { + "use strict"; + r.d(t, { + NT: () => o, + US: () => d, + Zm: () => a, + bQ: () => c, + dV: () => s, + nY: () => u, + pV: () => l, + }); + var n = r(6154), + i = r(1863); + const o = { beacon: "bam.nr-data.net", errorBeacon: "bam.nr-data.net" }; + function a() { + return ( + n.gm.NREUM || (n.gm.NREUM = {}), + void 0 === n.gm.newrelic && (n.gm.newrelic = n.gm.NREUM), + n.gm.NREUM + ); + } + function s() { + let e = a(); + return ( + e.o || + (e.o = { + ST: n.gm.setTimeout, + SI: n.gm.setImmediate, + CT: n.gm.clearTimeout, + XHR: n.gm.XMLHttpRequest, + REQ: n.gm.Request, + EV: n.gm.Event, + PR: n.gm.Promise, + MO: n.gm.MutationObserver, + FETCH: n.gm.fetch, + }), + e + ); + } + function c(e, t) { + let r = a(); + (r.initializedAgents ??= {}), + (t.initializedAt = { ms: (0, i.t)(), date: new Date() }), + (r.initializedAgents[e] = t); + } + function u(e) { + let t = a(); + return t.initializedAgents?.[e]; + } + function d(e, t) { + a()[e] = t; + } + function l() { + return ( + (function () { + let e = a(); + const t = e.info || {}; + e.info = { beacon: o.beacon, errorBeacon: o.errorBeacon, ...t }; + })(), + (function () { + let e = a(); + const t = e.init || {}; + e.init = { ...t }; + })(), + s(), + (function () { + let e = a(); + const t = e.loader_config || {}; + e.loader_config = { ...t }; + })(), + a() + ); + } + }, + 2843: (e, t, r) => { + "use strict"; + r.d(t, { u: () => i }); + var n = r(3878); + function i(e) { + let t = + arguments.length > 1 && void 0 !== arguments[1] && arguments[1], + r = arguments.length > 2 ? arguments[2] : void 0, + i = arguments.length > 3 ? arguments[3] : void 0; + (0, n.DD)( + "visibilitychange", + function () { + if (t) return void ("hidden" === document.visibilityState && e()); + e(document.visibilityState); + }, + r, + i + ); + } + }, + 8941: (e, t, r) => { + "use strict"; + r.d(t, { + um: () => f, + NZ: () => R, + vC: () => A, + Ri: () => O, + Ak: () => _, + o8: () => P, + MO: () => U, + bX: () => F, + }); + var n = r(7836), + i = r(3434), + o = r(8990), + a = r(6154); + const s = {}, + c = a.gm.XMLHttpRequest, + u = "addEventListener", + d = "removeEventListener", + l = "nr@wrapped:".concat(n.P); + function f(e) { + var t = (function (e) { + return (e || n.ee).get("events"); + })(e); + if (s[t.debugId]++) return t; + s[t.debugId] = 1; + var r = (0, i.YM)(t, !0); + function f(e) { + r.inPlace(e, [u, d], "-", g); + } + function g(e, t) { + return e[1]; + } + return ( + "getPrototypeOf" in Object && + (a.RI && h(document, f), h(a.gm, f), h(c.prototype, f)), + t.on(u + "-start", function (e, t) { + var n = e[1]; + if ( + null !== n && + ("function" == typeof n || "object" == typeof n) + ) { + var i = (0, o.I)(n, l, function () { + var e = { + object: function () { + if ("function" != typeof n.handleEvent) return; + return n.handleEvent.apply(n, arguments); + }, + function: n, + }[typeof n]; + return e ? r(e, "fn-", null, e.name || "anonymous") : n; + }); + this.wrapped = e[1] = i; + } + }), + t.on(d + "-start", function (e) { + e[1] = this.wrapped || e[1]; + }), + t + ); + } + function h(e, t) { + let r = e; + for ( + ; + "object" == typeof r && !Object.prototype.hasOwnProperty.call(r, u); + + ) + r = Object.getPrototypeOf(r); + for ( + var n = arguments.length, i = new Array(n > 2 ? n - 2 : 0), o = 2; + o < n; + o++ + ) + i[o - 2] = arguments[o]; + r && t(r, ...i); + } + var g = "fetch-", + p = g + "body-", + m = ["arrayBuffer", "blob", "json", "text", "formData"], + v = a.gm.Request, + b = a.gm.Response, + y = "prototype"; + const w = {}; + function R(e) { + const t = (function (e) { + return (e || n.ee).get("fetch"); + })(e); + if (!(v && b && a.gm.fetch)) return t; + if (w[t.debugId]++) return t; + function r(e, r, i) { + var o = e[r]; + "function" == typeof o && + (e[r] = function () { + var e, + r = [...arguments], + a = {}; + t.emit(i + "before-start", [r], a), + a[n.P] && a[n.P].dt && (e = a[n.P].dt); + var s = o.apply(this, r); + return ( + t.emit(i + "start", [r, e], s), + s.then( + function (e) { + return t.emit(i + "end", [null, e], s), e; + }, + function (e) { + throw (t.emit(i + "end", [e], s), e); + } + ) + ); + }); + } + return ( + (w[t.debugId] = 1), + m.forEach((e) => { + r(v[y], e, p), r(b[y], e, p); + }), + r(a.gm, "fetch", g), + t.on(g + "end", function (e, r) { + var n = this; + if (r) { + var i = r.headers.get("content-length"); + null !== i && (n.rxSize = i), t.emit(g + "done", [null, r], n); + } else t.emit(g + "done", [e], n); + }), + t + ); + } + const x = {}, + T = ["pushState", "replaceState"]; + function A(e) { + const t = (function (e) { + return (e || n.ee).get("history"); + })(e); + return ( + !a.RI || + x[t.debugId]++ || + ((x[t.debugId] = 1), + (0, i.YM)(t).inPlace(window.history, T, "-")), + t + ); + } + var E = r(3878); + const N = {}, + S = ["appendChild", "insertBefore", "replaceChild"]; + function O(e) { + const t = (function (e) { + return (e || n.ee).get("jsonp"); + })(e); + if (!a.RI || N[t.debugId]) return t; + N[t.debugId] = !0; + var r = (0, i.YM)(t), + o = /[?&](?:callback|cb)=([^&#]+)/, + s = /(.*)\.([^.]+)/, + c = /^(\w+)(\.|$)(.*)$/; + function u(e, t) { + if (!e) return t; + const r = e.match(c), + n = r[1]; + return u(r[3], t[n]); + } + return ( + r.inPlace(Node.prototype, S, "dom-"), + t.on("dom-start", function (e) { + !(function (e) { + if ( + !e || + "string" != typeof e.nodeName || + "script" !== e.nodeName.toLowerCase() + ) + return; + if ("function" != typeof e.addEventListener) return; + var n = ((i = e.src), (a = i.match(o)), a ? a[1] : null); + var i, a; + if (!n) return; + var c = (function (e) { + var t = e.match(s); + if (t && t.length >= 3) + return { key: t[2], parent: u(t[1], window) }; + return { key: e, parent: window }; + })(n); + if ("function" != typeof c.parent[c.key]) return; + var d = {}; + function l() { + t.emit("jsonp-end", [], d), + e.removeEventListener("load", l, (0, E.jT)(!1)), + e.removeEventListener("error", f, (0, E.jT)(!1)); + } + function f() { + t.emit("jsonp-error", [], d), + t.emit("jsonp-end", [], d), + e.removeEventListener("load", l, (0, E.jT)(!1)), + e.removeEventListener("error", f, (0, E.jT)(!1)); + } + r.inPlace(c.parent, [c.key], "cb-", d), + e.addEventListener("load", l, (0, E.jT)(!1)), + e.addEventListener("error", f, (0, E.jT)(!1)), + t.emit("new-jsonp", [e.src], d); + })(e[0]); + }), + t + ); + } + const I = {}; + function _(e) { + const t = (function (e) { + return (e || n.ee).get("mutation"); + })(e); + if (!a.RI || I[t.debugId]) return t; + I[t.debugId] = !0; + var r = (0, i.YM)(t), + o = a.gm.MutationObserver; + return ( + o && + ((window.MutationObserver = function (e) { + return this instanceof o + ? new o(r(e, "fn-")) + : o.apply(this, arguments); + }), + (MutationObserver.prototype = o.prototype)), + t + ); + } + const j = {}; + function P(e) { + const t = (function (e) { + return (e || n.ee).get("promise"); + })(e); + if (j[t.debugId]) return t; + j[t.debugId] = !0; + var r = t.context, + o = (0, i.YM)(t), + s = a.gm.Promise; + return ( + s && + (function () { + function e(r) { + var n = t.context(), + i = o(r, "executor-", n, null, !1); + const a = Reflect.construct(s, [i], e); + return ( + (t.context(a).getCtx = function () { + return n; + }), + a + ); + } + (a.gm.Promise = e), + Object.defineProperty(e, "name", { value: "Promise" }), + (e.toString = function () { + return s.toString(); + }), + Object.setPrototypeOf(e, s), + ["all", "race"].forEach(function (r) { + const n = s[r]; + e[r] = function (e) { + let i = !1; + [...(e || [])].forEach((e) => { + this.resolve(e).then(a("all" === r), a(!1)); + }); + const o = n.apply(this, arguments); + return o; + function a(e) { + return function () { + t.emit("propagate", [null, !i], o, !1, !1), + (i = i || !e); + }; + } + }; + }), + ["resolve", "reject"].forEach(function (r) { + const n = s[r]; + e[r] = function (e) { + const r = n.apply(this, arguments); + return ( + e !== r && t.emit("propagate", [e, !0], r, !1, !1), r + ); + }; + }), + (e.prototype = s.prototype); + const n = s.prototype.then; + (s.prototype.then = function () { + var e = this, + i = r(e); + i.promise = e; + for ( + var a = arguments.length, s = new Array(a), c = 0; + c < a; + c++ + ) + s[c] = arguments[c]; + (s[0] = o(s[0], "cb-", i, null, !1)), + (s[1] = o(s[1], "cb-", i, null, !1)); + const u = n.apply(this, s); + return ( + (i.nextPromise = u), + t.emit("propagate", [e, !0], u, !1, !1), + u + ); + }), + (s.prototype.then[i.Jt] = n), + t.on("executor-start", function (e) { + (e[0] = o(e[0], "resolve-", this, null, !1)), + (e[1] = o(e[1], "resolve-", this, null, !1)); + }), + t.on("executor-err", function (e, t, r) { + e[1](r); + }), + t.on("cb-end", function (e, r, n) { + t.emit("propagate", [n, !0], this.nextPromise, !1, !1); + }), + t.on("propagate", function (e, r, n) { + (this.getCtx && !r) || + (this.getCtx = function () { + if (e instanceof Promise) var r = t.context(e); + return r && r.getCtx ? r.getCtx() : this; + }); + }); + })(), + t + ); + } + const C = {}, + k = "setTimeout", + L = "setInterval", + D = "clearTimeout", + H = "-start", + M = "-", + K = [k, "setImmediate", L, D, "clearImmediate"]; + function U(e) { + const t = (function (e) { + return (e || n.ee).get("timer"); + })(e); + if (C[t.debugId]++) return t; + C[t.debugId] = 1; + var r = (0, i.YM)(t); + return ( + r.inPlace(a.gm, K.slice(0, 2), k + M), + r.inPlace(a.gm, K.slice(2, 3), L + M), + r.inPlace(a.gm, K.slice(3), D + M), + t.on(L + H, function (e, t, n) { + e[0] = r(e[0], "fn-", null, n); + }), + t.on(k + H, function (e, t, n) { + (this.method = n), + (this.timerDuration = isNaN(e[1]) ? 0 : +e[1]), + (e[0] = r(e[0], "fn-", this, n)); + }), + t + ); + } + var G = r(944); + const B = {}, + V = ["open", "send"]; + function F(e) { + var t = e || n.ee; + const r = (function (e) { + return (e || n.ee).get("xhr"); + })(t); + if (B[r.debugId]++) return r; + (B[r.debugId] = 1), f(t); + var o = (0, i.YM)(r), + s = a.gm.XMLHttpRequest, + c = a.gm.MutationObserver, + u = a.gm.Promise, + d = a.gm.setInterval, + l = "readystatechange", + h = [ + "onload", + "onerror", + "onabort", + "onloadstart", + "onloadend", + "onprogress", + "ontimeout", + ], + g = [], + p = (a.gm.XMLHttpRequest = function (e) { + const t = new s(e), + n = r.context(t); + try { + r.emit("new-xhr", [t], n), + t.addEventListener( + l, + ((i = n), + function () { + var e = this; + e.readyState > 3 && + !i.resolved && + ((i.resolved = !0), r.emit("xhr-resolved", [], e)), + o.inPlace(e, h, "fn-", R); + }), + (0, E.jT)(!1) + ); + } catch (e) { + (0, G.R)(15, e); + try { + r.emit("internal-error", [e]); + } catch (e) {} + } + var i; + return t; + }); + function m(e, t) { + o.inPlace(t, ["onreadystatechange"], "fn-", R); + } + if ( + ((function (e, t) { + for (var r in e) t[r] = e[r]; + })(s, p), + (p.prototype = s.prototype), + o.inPlace(p.prototype, V, "-xhr-", R), + r.on("send-xhr-start", function (e, t) { + m(e, t), + (function (e) { + g.push(e), + c && (v ? v.then(w) : d ? d(w) : ((b = -b), (y.data = b))); + })(t); + }), + r.on("open-xhr-start", m), + c) + ) { + var v = u && u.resolve(); + if (!d && !u) { + var b = 1, + y = document.createTextNode(b); + new c(w).observe(y, { characterData: !0 }); + } + } else + t.on("fn-end", function (e) { + (e[0] && e[0].type === l) || w(); + }); + function w() { + for (var e = 0; e < g.length; e++) m(0, g[e]); + g.length && (g = []); + } + function R(e, t) { + return t; + } + return r; + } + }, + 3434: (e, t, r) => { + "use strict"; + r.d(t, { Jt: () => o, YM: () => c }); + var n = r(7836), + i = r(5607); + const o = "nr@original:".concat(i.W); + var a = Object.prototype.hasOwnProperty, + s = !1; + function c(e, t) { + return ( + e || (e = n.ee), + (r.inPlace = function (e, t, n, i, o) { + n || (n = ""); + const a = "-" === n.charAt(0); + for (let s = 0; s < t.length; s++) { + const c = t[s], + u = e[c]; + d(u) || (e[c] = r(u, a ? c + n : n, i, c, o)); + } + }), + (r.flag = o), + r + ); + function r(t, r, n, s, c) { + return d(t) + ? t + : (r || (r = ""), + (nrWrapper[o] = t), + (function (e, t, r) { + if (Object.defineProperty && Object.keys) + try { + return ( + Object.keys(e).forEach(function (r) { + Object.defineProperty(t, r, { + get: function () { + return e[r]; + }, + set: function (t) { + return (e[r] = t), t; + }, + }); + }), + t + ); + } catch (e) { + u([e], r); + } + for (var n in e) a.call(e, n) && (t[n] = e[n]); + })(t, nrWrapper, e), + nrWrapper); + function nrWrapper() { + var o, a, d, l; + try { + (a = this), + (o = [...arguments]), + (d = "function" == typeof n ? n(o, a) : n || {}); + } catch (t) { + u([t, "", [o, a, s], d], e); + } + i(r + "start", [o, a, s], d, c); + try { + return (l = t.apply(a, o)); + } catch (e) { + throw (i(r + "err", [o, a, e], d, c), e); + } finally { + i(r + "end", [o, a, l], d, c); + } + } + } + function i(r, n, i, o) { + if (!s || t) { + var a = s; + s = !0; + try { + e.emit(r, n, i, t, o); + } catch (t) { + u([t, r, n, i], e); + } + s = a; + } + } + } + function u(e, t) { + t || (t = n.ee); + try { + t.emit("internal-error", e); + } catch (e) {} + } + function d(e) { + return !(e && "function" == typeof e && e.apply && !e[o]); + } + }, + 9300: (e, t, r) => { + "use strict"; + r.d(t, { T: () => n }); + const n = r(860).K.ajax; + }, + 3333: (e, t, r) => { + "use strict"; + r.d(t, { T: () => n }); + const n = r(860).K.genericEvents; + }, + 6774: (e, t, r) => { + "use strict"; + r.d(t, { T: () => n }); + const n = r(860).K.jserrors; + }, + 993: (e, t, r) => { + "use strict"; + r.d(t, { ET: () => o, It: () => s, TZ: () => a, p_: () => i }); + var n = r(860); + const i = { + ERROR: "ERROR", + WARN: "WARN", + INFO: "INFO", + DEBUG: "DEBUG", + TRACE: "TRACE", + }, + o = "log", + a = n.K.logging, + s = 1e6; + }, + 3785: (e, t, r) => { + "use strict"; + r.d(t, { R: () => c, b: () => u }); + var n = r(9908), + i = r(1863), + o = r(860), + a = r(3969), + s = r(993); + function c(e, t) { + let r = + arguments.length > 2 && void 0 !== arguments[2] + ? arguments[2] + : {}, + c = + arguments.length > 3 && void 0 !== arguments[3] + ? arguments[3] + : s.p_.INFO; + (0, n.p)( + a.xV, + ["API/logging/".concat(c.toLowerCase(), "/called")], + void 0, + o.K.metrics, + e + ), + (0, n.p)(s.ET, [(0, i.t)(), t, r, c], void 0, o.K.logging, e); + } + function u(e) { + return ( + "string" == typeof e && Object.values(s.p_).some((t) => t === e) + ); + } + }, + 3969: (e, t, r) => { + "use strict"; + r.d(t, { + TZ: () => n, + XG: () => s, + rs: () => i, + xV: () => a, + z_: () => o, + }); + const n = r(860).K.metrics, + i = "sm", + o = "cm", + a = "storeSupportabilityMetrics", + s = "storeEventMetrics"; + }, + 6630: (e, t, r) => { + "use strict"; + r.d(t, { T: () => n }); + const n = r(860).K.pageViewEvent; + }, + 782: (e, t, r) => { + "use strict"; + r.d(t, { T: () => n }); + const n = r(860).K.pageViewTiming; + }, + 6344: (e, t, r) => { + "use strict"; + r.d(t, { + BB: () => f, + G4: () => o, + It: () => c, + No: () => u, + Qb: () => h, + TZ: () => i, + Ug: () => a, + _s: () => s, + bc: () => l, + yP: () => d, + }); + var n = r(2614); + const i = r(860).K.sessionReplay, + o = { + RECORD: "recordReplay", + PAUSE: "pauseReplay", + REPLAY_RUNNING: "replayRunning", + ERROR_DURING_REPLAY: "errorDuringReplay", + }, + a = 0.12, + s = { + DomContentLoaded: 0, + Load: 1, + FullSnapshot: 2, + IncrementalSnapshot: 3, + Meta: 4, + Custom: 5, + }, + c = 1e6, + u = 64e3, + d = { [n.g.ERROR]: 15e3, [n.g.FULL]: 3e5, [n.g.OFF]: 0 }, + l = { + RESET: { message: "Session was reset", sm: "Reset" }, + IMPORT: { message: "Recorder failed to import", sm: "Import" }, + TOO_MANY: { message: "429: Too Many Requests", sm: "Too-Many" }, + TOO_BIG: { message: "Payload was too large", sm: "Too-Big" }, + CROSS_TAB: { + message: "Session Entity was set to OFF on another tab", + sm: "Cross-Tab", + }, + ENTITLEMENTS: { + message: "Session Replay is not allowed and will not be started", + sm: "Entitlement", + }, + }, + f = 5e3, + h = { API: "api" }; + }, + 5270: (e, t, r) => { + "use strict"; + r.d(t, { Aw: () => s, CT: () => c, SR: () => a }); + var n = r(2983), + i = r(7767), + o = r(6154); + function a(e) { + return ( + !!n.hR.MO && + (0, i.V)(e) && + !0 === (0, n.gD)(e, "session_trace.enabled") + ); + } + function s(e) { + return !0 === (0, n.gD)(e, "session_replay.preload") && a(e); + } + function c(e, t) { + const r = t.correctAbsoluteTimestamp(e); + return { + originalTimestamp: e, + correctedTimestamp: r, + timestampDiff: e - r, + originTime: o.WN, + correctedOriginTime: t.correctedOriginTime, + originTimeDiff: Math.floor(o.WN - t.correctedOriginTime), + }; + } + }, + 3738: (e, t, r) => { + "use strict"; + r.d(t, { + He: () => i, + Kp: () => s, + Lc: () => u, + Rz: () => d, + TZ: () => n, + bD: () => o, + d3: () => a, + jx: () => l, + uP: () => c, + }); + const n = r(860).K.sessionTrace, + i = "bstResource", + o = "resource", + a = "-start", + s = "-end", + c = "fn" + a, + u = "fn" + s, + d = "pushState", + l = 1e3; + }, + 3962: (e, t, r) => { + "use strict"; + r.d(t, { + AM: () => o, + O2: () => s, + Qu: () => c, + TZ: () => a, + ih: () => u, + tC: () => i, + }); + var n = r(860); + const i = ["click", "keydown", "submit"], + o = "api", + a = n.K.softNav, + s = { INITIAL_PAGE_LOAD: "", ROUTE_CHANGE: 1, UNSPECIFIED: 2 }, + c = { INTERACTION: 1, AJAX: 2, CUSTOM_END: 3, CUSTOM_TRACER: 4 }, + u = { IP: "in progress", FIN: "finished", CAN: "cancelled" }; + }, + 7378: (e, t, r) => { + "use strict"; + r.d(t, { + $p: () => x, + BR: () => b, + Kp: () => R, + L3: () => y, + Lc: () => c, + NC: () => o, + SG: () => d, + TZ: () => i, + U6: () => g, + UT: () => m, + d3: () => w, + dT: () => f, + e5: () => A, + gx: () => v, + l9: () => l, + oW: () => h, + op: () => p, + rw: () => u, + tH: () => E, + uP: () => s, + wW: () => T, + xq: () => a, + }); + var n = r(2983); + const i = r(860).K.spa, + o = ["click", "submit", "keypress", "keydown", "keyup", "change"], + a = 999, + s = "fn-start", + c = "fn-end", + u = "cb-start", + d = "api-ixn-", + l = "remaining", + f = "interaction", + h = "spaNode", + g = "jsonpNode", + p = "fetch-start", + m = "fetch-done", + v = "fetch-body-", + b = "jsonp-end", + y = n.hR.ST, + w = "-start", + R = "-end", + x = "-body", + T = "cb" + R, + A = "jsTime", + E = "fetch"; + }, + 4234: (e, t, r) => { + "use strict"; + r.d(t, { W: () => i }); + var n = r(7836); + class i { + constructor(e, t, r) { + (this.agentIdentifier = e), + (this.aggregator = t), + (this.ee = n.ee.get(e)), + (this.featureName = r), + (this.blocked = !1); + } + } + }, + 7767: (e, t, r) => { + "use strict"; + r.d(t, { V: () => o }); + var n = r(2983), + i = r(6154); + const o = (e) => i.RI && !0 === (0, n.gD)(e, "privacy.cookies_enabled"); + }, + 425: (e, t, r) => { + "use strict"; + r.d(t, { j: () => O }); + var n = r(860), + i = r(2983), + o = r(9908), + a = r(7836), + s = r(1687), + c = r(5289), + u = r(6154), + d = r(944), + l = r(3969), + f = r(384), + h = r(6344); + const g = [ + "setErrorHandler", + "finished", + "addToTrace", + "addRelease", + "addPageAction", + "setCurrentRouteName", + "setPageViewName", + "setCustomAttribute", + "interaction", + "noticeError", + "setUserId", + "setApplicationVersion", + "start", + h.G4.RECORD, + h.G4.PAUSE, + "log", + "wrapLogger", + ], + p = ["setErrorHandler", "finished", "addToTrace", "addRelease"]; + var m = r(1863), + v = r(2614), + b = r(993), + y = r(3785), + w = r(2646), + R = r(3434); + function x(e, t, r, n) { + if ( + "object" != typeof t || + !t || + "string" != typeof r || + !r || + "function" != typeof t[r] + ) + return (0, d.R)(29); + const i = (function (e) { + return (e || a.ee).get("logger"); + })(e), + o = (0, R.YM)(i), + s = new w.y(a.P); + return ( + (s.level = n.level), + (s.customAttributes = n.customAttributes), + o.inPlace(t, [r], "wrap-logger-", s), + i + ); + } + function T() { + const e = (0, f.pV)(); + g.forEach((t) => { + e[t] = function () { + for ( + var r = arguments.length, n = new Array(r), i = 0; + i < r; + i++ + ) + n[i] = arguments[i]; + return (function (t) { + for ( + var r = arguments.length, + n = new Array(r > 1 ? r - 1 : 0), + i = 1; + i < r; + i++ + ) + n[i - 1] = arguments[i]; + let o = []; + return ( + Object.values(e.initializedAgents).forEach((e) => { + e && e.api + ? e.exposed && e.api[t] && o.push(e.api[t](...n)) + : (0, d.R)(38, t); + }), + o.length > 1 ? o : o[0] + ); + })(t, ...n); + }; + }); + } + const A = {}; + var E = r(5284); + const N = (e) => { + const t = e.startsWith("http"); + (e += "/"), (r.p = t ? e : "https://" + e); + }; + let S = !1; + function O(e) { + let t = + arguments.length > 1 && void 0 !== arguments[1] + ? arguments[1] + : {}, + g = arguments.length > 2 ? arguments[2] : void 0, + w = arguments.length > 3 ? arguments[3] : void 0, + { + init: R, + info: O, + loader_config: I, + runtime: _ = {}, + exposed: j = !0, + } = t; + _.loaderType = g; + const P = (0, f.pV)(); + O || ((R = P.init), (O = P.info), (I = P.loader_config)), + (0, i.xN)(e.agentIdentifier, R || {}), + (0, i.aN)(e.agentIdentifier, I || {}), + (O.jsAttributes ??= {}), + u.bv && (O.jsAttributes.isWorker = !0), + (0, i.x1)(e.agentIdentifier, O); + const C = (0, i.D0)(e.agentIdentifier), + k = [O.beacon, O.errorBeacon]; + S || + (C.proxy.assets && (N(C.proxy.assets), k.push(C.proxy.assets)), + C.proxy.beacon && k.push(C.proxy.beacon), + T(), + (0, f.US)("activatedFeatures", E.B), + (e.runSoftNavOverSpa &&= + !0 === C.soft_navigations.enabled && + C.feature_flags.includes("soft_nav"))), + (_.denyList = [ + ...(C.ajax.deny_list || []), + ...(C.ajax.block_internal ? k : []), + ]), + (_.ptid = e.agentIdentifier), + (0, i.V)(e.agentIdentifier, _), + (e.ee = a.ee.get(e.agentIdentifier)), + void 0 === e.api && + (e.api = (function (e, t) { + let f = + arguments.length > 2 && + void 0 !== arguments[2] && + arguments[2]; + t || (0, s.Ak)(e, "api"); + const g = {}; + var w = a.ee.get(e), + R = w.get("tracer"); + (A[e] = v.g.OFF), + w.on(h.G4.REPLAY_RUNNING, (t) => { + A[e] = t; + }); + var T = "api-", + E = T + "ixn-"; + function N(t, r, n, o) { + const a = (0, i.Vp)(e); + return ( + null === r + ? delete a.jsAttributes[t] + : (0, i.x1)(e, { + ...a, + jsAttributes: { ...a.jsAttributes, [t]: r }, + }), + I(T, n, !0, o || null === r ? "session" : void 0)(t, r) + ); + } + function S() {} + (g.log = function (e) { + let { customAttributes: t = {}, level: r = b.p_.INFO } = + arguments.length > 1 && void 0 !== arguments[1] + ? arguments[1] + : {}; + (0, o.p)(l.xV, ["API/log/called"], void 0, n.K.metrics, w), + (0, y.R)(w, e, t, r); + }), + (g.wrapLogger = function (e, t) { + let { customAttributes: r = {}, level: i = b.p_.INFO } = + arguments.length > 2 && void 0 !== arguments[2] + ? arguments[2] + : {}; + (0, o.p)( + l.xV, + ["API/wrapLogger/called"], + void 0, + n.K.metrics, + w + ), + x(w, e, t, { customAttributes: r, level: i }); + }), + p.forEach((e) => { + g[e] = I(T, e, !0, "api"); + }), + (g.addPageAction = I( + T, + "addPageAction", + !0, + n.K.genericEvents + )), + (g.setPageViewName = function (t, r) { + if ("string" == typeof t) + return ( + "/" !== t.charAt(0) && (t = "/" + t), + ((0, i.fr)(e).customTransaction = + (r || "http://custom.transaction") + t), + I(T, "setPageViewName", !0)() + ); + }), + (g.setCustomAttribute = function (e, t) { + let r = + arguments.length > 2 && + void 0 !== arguments[2] && + arguments[2]; + if ("string" == typeof e) { + if ( + ["string", "number", "boolean"].includes(typeof t) || + null === t + ) + return N(e, t, "setCustomAttribute", r); + (0, d.R)(40, typeof t); + } else (0, d.R)(39, typeof e); + }), + (g.setUserId = function (e) { + if ("string" == typeof e || null === e) + return N("enduser.id", e, "setUserId", !0); + (0, d.R)(41, typeof e); + }), + (g.setApplicationVersion = function (e) { + if ("string" == typeof e || null === e) + return N( + "application.version", + e, + "setApplicationVersion", + !1 + ); + (0, d.R)(42, typeof e); + }), + (g.start = () => { + try { + (0, o.p)( + l.xV, + ["API/start/called"], + void 0, + n.K.metrics, + w + ), + w.emit("manual-start-all"); + } catch (e) { + (0, d.R)(23, e); + } + }), + (g[h.G4.RECORD] = function () { + (0, o.p)( + l.xV, + ["API/recordReplay/called"], + void 0, + n.K.metrics, + w + ), + (0, o.p)(h.G4.RECORD, [], void 0, n.K.sessionReplay, w); + }), + (g[h.G4.PAUSE] = function () { + (0, o.p)( + l.xV, + ["API/pauseReplay/called"], + void 0, + n.K.metrics, + w + ), + (0, o.p)(h.G4.PAUSE, [], void 0, n.K.sessionReplay, w); + }), + (g.interaction = function (e) { + return new S().get("object" == typeof e ? e : {}); + }); + const O = (S.prototype = { + createTracer: function (e, t) { + var r = {}, + i = this, + a = "function" == typeof t; + return ( + (0, o.p)( + l.xV, + ["API/createTracer/called"], + void 0, + n.K.metrics, + w + ), + f || + (0, o.p)( + E + "tracer", + [(0, m.t)(), e, r], + i, + n.K.spa, + w + ), + function () { + if ( + (R.emit( + (a ? "" : "no-") + "fn-start", + [(0, m.t)(), i, a], + r + ), + a) + ) + try { + return t.apply(this, arguments); + } catch (e) { + const t = "string" == typeof e ? new Error(e) : e; + throw ( + (R.emit("fn-err", [arguments, this, t], r), t) + ); + } finally { + R.emit("fn-end", [(0, m.t)()], r); + } + } + ); + }, + }); + function I(e, t, r, i) { + return function () { + return ( + (0, o.p)( + l.xV, + ["API/" + t + "/called"], + void 0, + n.K.metrics, + w + ), + i && + (0, o.p)( + e + t, + [(0, m.t)(), ...arguments], + r ? null : this, + i, + w + ), + r ? void 0 : this + ); + }; + } + function _() { + r.e(478) + .then(r.bind(r, 8778)) + .then((t) => { + let { setAPI: r } = t; + r(e), (0, s.Ze)(e, "api"); + }) + .catch((e) => { + (0, d.R)(27, e), w.abort(); + }); + } + return ( + [ + "actionText", + "setName", + "setAttribute", + "save", + "ignore", + "onEnd", + "getContext", + "end", + "get", + ].forEach((e) => { + O[e] = I(E, e, void 0, f ? n.K.softNav : n.K.spa); + }), + (g.setCurrentRouteName = f + ? I(E, "routeName", void 0, n.K.softNav) + : I(T, "routeName", !0, n.K.spa)), + (g.noticeError = function (t, r) { + "string" == typeof t && (t = new Error(t)), + (0, o.p)( + l.xV, + ["API/noticeError/called"], + void 0, + n.K.metrics, + w + ), + (0, o.p)( + "err", + [t, (0, m.t)(), !1, r, !!A[e]], + void 0, + n.K.jserrors, + w + ); + }), + u.RI ? (0, c.GG)(() => _(), !0) : _(), + g + ); + })(e.agentIdentifier, w, e.runSoftNavOverSpa)), + void 0 === e.exposed && (e.exposed = j), + (S = !0); + } + }, + 8374: (e, t, r) => { + r.nc = (() => { + try { + return document?.currentScript?.nonce; + } catch (e) {} + return ""; + })(); + }, + 860: (e, t, r) => { + "use strict"; + r.d(t, { K: () => n, P: () => i }); + const n = { + ajax: "ajax", + genericEvents: "generic_events", + jserrors: "jserrors", + logging: "logging", + metrics: "metrics", + pageAction: "page_action", + pageViewEvent: "page_view_event", + pageViewTiming: "page_view_timing", + sessionReplay: "session_replay", + sessionTrace: "session_trace", + softNav: "soft_navigations", + spa: "spa", + }, + i = { + [n.pageViewEvent]: 1, + [n.pageViewTiming]: 2, + [n.metrics]: 3, + [n.jserrors]: 4, + [n.spa]: 5, + [n.ajax]: 6, + [n.sessionTrace]: 7, + [n.softNav]: 8, + [n.sessionReplay]: 9, + [n.logging]: 10, + [n.genericEvents]: 11, + }; + }, + }, + n = {}; + function i(e) { + var t = n[e]; + if (void 0 !== t) return t.exports; + var o = (n[e] = { exports: {} }); + return r[e](o, o.exports, i), o.exports; + } + (i.m = r), + (i.d = (e, t) => { + for (var r in t) + i.o(t, r) && + !i.o(e, r) && + Object.defineProperty(e, r, { enumerable: !0, get: t[r] }); + }), + (i.f = {}), + (i.e = (e) => + Promise.all(Object.keys(i.f).reduce((t, r) => (i.f[r](e, t), t), []))), + (i.u = (e) => + ({ 212: "nr-spa-compressor", 249: "nr-spa-recorder", 478: "nr-spa" }[e] + + "-1.264.0.min.js")), + (i.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), + (e = {}), + (t = "NRBA-1.264.0.PROD:"), + (i.l = (r, n, o, a) => { + if (e[r]) e[r].push(n); + else { + var s, c; + if (void 0 !== o) + for ( + var u = document.getElementsByTagName("script"), d = 0; + d < u.length; + d++ + ) { + var l = u[d]; + if ( + l.getAttribute("src") == r || + l.getAttribute("data-webpack") == t + o + ) { + s = l; + break; + } + } + if (!s) { + c = !0; + var f = { + 478: "sha512-McVw1bGHjjUf5GGS4WenO1eJQ8s7UloN07RDcN8bH9X1iGHTAJZ38fRFPC9DW3pFKJ2uKysBuvqehJYvHcIthg==", + 249: "sha512-QYiFK3L0u5EMr5V3YITSZcfvK9upxp9dvxRVLY9qis5pUIvOkKb5SKvPYPNw7sEKXP8TzyY2DLpLmqHxWCZ2cg==", + 212: "sha512-pdn6WS9R03kXhRA2vQoZgApGomYEaTBtHJfyGcBu9pt7MUR6schZTqs6BcrSDNoPhpJO6N5kUTMqB2WknZMDIA==", + }; + ((s = document.createElement("script")).charset = "utf-8"), + (s.timeout = 120), + i.nc && s.setAttribute("nonce", i.nc), + s.setAttribute("data-webpack", t + o), + (s.src = r), + 0 !== s.src.indexOf(window.location.origin + "/") && + (s.crossOrigin = "anonymous"), + f[a] && (s.integrity = f[a]); + } + e[r] = [n]; + var h = (t, n) => { + (s.onerror = s.onload = null), clearTimeout(g); + var i = e[r]; + if ( + (delete e[r], + s.parentNode && s.parentNode.removeChild(s), + i && i.forEach((e) => e(n)), + t) + ) + return t(n); + }, + g = setTimeout( + h.bind(null, void 0, { type: "timeout", target: s }), + 12e4 + ); + (s.onerror = h.bind(null, s.onerror)), + (s.onload = h.bind(null, s.onload)), + c && document.head.appendChild(s); + } + }), + (i.r = (e) => { + "undefined" != typeof Symbol && + Symbol.toStringTag && + Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), + Object.defineProperty(e, "__esModule", { value: !0 }); + }), + (i.p = "https://js-agent.newrelic.com/"), + (() => { + var e = { 38: 0, 788: 0 }; + i.f.j = (t, r) => { + var n = i.o(e, t) ? e[t] : void 0; + if (0 !== n) + if (n) r.push(n[2]); + else { + var o = new Promise((r, i) => (n = e[t] = [r, i])); + r.push((n[2] = o)); + var a = i.p + i.u(t), + s = new Error(); + i.l( + a, + (r) => { + if (i.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) { + var o = r && ("load" === r.type ? "missing" : r.type), + a = r && r.target && r.target.src; + (s.message = + "Loading chunk " + t + " failed.\n(" + o + ": " + a + ")"), + (s.name = "ChunkLoadError"), + (s.type = o), + (s.request = a), + n[1](s); + } + }, + "chunk-" + t, + t + ); + } + }; + var t = (t, r) => { + var n, + o, + [a, s, c] = r, + u = 0; + if (a.some((t) => 0 !== e[t])) { + for (n in s) i.o(s, n) && (i.m[n] = s[n]); + if (c) c(i); + } + for (t && t(r); u < a.length; u++) + (o = a[u]), i.o(e, o) && e[o] && e[o][0](), (e[o] = 0); + }, + r = (self["webpackChunk:NRBA-1.264.0.PROD"] = + self["webpackChunk:NRBA-1.264.0.PROD"] || []); + r.forEach(t.bind(null, 0)), (r.push = t.bind(null, r.push.bind(r))); + })(), + (() => { + "use strict"; + i(8374); + var e = i(944), + t = i(6344), + r = i(9566); + class n { + agentIdentifier; + constructor() { + let e = + arguments.length > 0 && void 0 !== arguments[0] + ? arguments[0] + : (0, r.LA)(16); + this.agentIdentifier = e; + } + #e(t) { + for ( + var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; + i < r; + i++ + ) + n[i - 1] = arguments[i]; + if ("function" == typeof this.api?.[t]) return this.api[t](...n); + (0, e.R)(35, t); + } + addPageAction(e, t) { + return this.#e("addPageAction", e, t); + } + setPageViewName(e, t) { + return this.#e("setPageViewName", e, t); + } + setCustomAttribute(e, t, r) { + return this.#e("setCustomAttribute", e, t, r); + } + noticeError(e, t) { + return this.#e("noticeError", e, t); + } + setUserId(e) { + return this.#e("setUserId", e); + } + setApplicationVersion(e) { + return this.#e("setApplicationVersion", e); + } + setErrorHandler(e) { + return this.#e("setErrorHandler", e); + } + finished(e) { + return this.#e("finished", e); + } + addRelease(e, t) { + return this.#e("addRelease", e, t); + } + start(e) { + return this.#e("start", e); + } + recordReplay() { + return this.#e(t.G4.RECORD); + } + pauseReplay() { + return this.#e(t.G4.PAUSE); + } + addToTrace(e) { + return this.#e("addToTrace", e); + } + setCurrentRouteName(e) { + return this.#e("setCurrentRouteName", e); + } + interaction() { + return this.#e("interaction"); + } + log(e, t) { + return this.#e("logInfo", e, t); + } + wrapLogger(e, t, r) { + return this.#e("wrapLogger", e, t, r); + } + } + var o = i(860), + a = i(2983); + const s = Object.values(o.K); + function c(e) { + const t = {}; + return ( + s.forEach((r) => { + t[r] = (function (e, t) { + return !0 === (0, a.gD)(t, "".concat(e, ".enabled")); + })(r, e); + }), + t + ); + } + var u = i(425); + var d = i(1687), + l = i(4234), + f = i(5289), + h = i(6154), + g = i(5270), + p = i(7767), + m = i(6389); + class v extends l.W { + constructor(e, t, r) { + let n = + !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]; + super(e, t, r), + (this.auto = n), + (this.abortHandler = void 0), + (this.featAggregate = void 0), + (this.onAggregateImported = void 0), + !1 === + (0, a.gD)( + this.agentIdentifier, + "".concat(this.featureName, ".autoStart") + ) && (this.auto = !1), + this.auto + ? (0, d.Ak)(e, r) + : this.ee.on( + "manual-start-all", + (0, m.J)(() => { + (0, d.Ak)(this.agentIdentifier, this.featureName), + (this.auto = !0), + this.importAggregator(); + }) + ); + } + importAggregator() { + let t, + r = + arguments.length > 0 && void 0 !== arguments[0] + ? arguments[0] + : {}; + if (this.featAggregate || !this.auto) return; + this.onAggregateImported = new Promise((e) => { + t = e; + }); + const n = async () => { + let n; + try { + if ((0, p.V)(this.agentIdentifier)) { + const { setupAgentSession: e } = await i + .e(478) + .then(i.bind(i, 6526)); + n = e(this.agentIdentifier); + } + } catch (t) { + (0, e.R)(20, t), + this.ee.emit("internal-error", [t]), + this.featureName === o.K.sessionReplay && this.abortHandler?.(); + } + try { + if (!this.#t(this.featureName, n)) + return ( + (0, d.Ze)(this.agentIdentifier, this.featureName), void t(!1) + ); + const { lazyFeatureLoader: e } = await i + .e(478) + .then(i.bind(i, 6103)), + { Aggregate: o } = await e(this.featureName, "aggregate"); + (this.featAggregate = new o( + this.agentIdentifier, + this.aggregator, + r + )), + t(!0); + } catch (r) { + (0, e.R)(34, r), + this.abortHandler?.(), + (0, d.Ze)(this.agentIdentifier, this.featureName, !0), + t(!1), + this.ee && this.ee.abort(); + } + }; + h.RI ? (0, f.GG)(() => n(), !0) : n(); + } + #t(e, t) { + switch (e) { + case o.K.sessionReplay: + return (0, g.SR)(this.agentIdentifier) && !!t; + case o.K.sessionTrace: + return !!t; + default: + return !0; + } + } + } + var b = i(6630); + class y extends v { + static featureName = (() => b.T)(); + constructor(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + super(e, t, b.T, r), this.importAggregator(); + } + } + var w = i(4777); + class R extends w.J { + constructor(e) { + super(e), (this.aggregatedData = {}); + } + store(e, t, r, n, i) { + var o = this.getBucket(e, t, r, i); + return ( + (o.metrics = (function (e, t) { + t || (t = { count: 0 }); + return ( + (t.count += 1), + Object.entries(e || {}).forEach((e) => { + let [r, n] = e; + t[r] = x(n, t[r]); + }), + t + ); + })(n, o.metrics)), + o + ); + } + merge(e, t, r, n, i) { + var o = this.getBucket(e, t, n, i); + if (o.metrics) { + var a = o.metrics; + (a.count += r.count), + Object.keys(r || {}).forEach((e) => { + if ("count" !== e) { + var t = a[e], + n = r[e]; + n && !n.c + ? (a[e] = x(n.t, t)) + : (a[e] = (function (e, t) { + if (!t) return e; + t.c || (t = T(t.t)); + return ( + (t.min = Math.min(e.min, t.min)), + (t.max = Math.max(e.max, t.max)), + (t.t += e.t), + (t.sos += e.sos), + (t.c += e.c), + t + ); + })(n, a[e])); + } + }); + } else o.metrics = r; + } + storeMetric(e, t, r, n) { + var i = this.getBucket(e, t, r); + return (i.stats = x(n, i.stats)), i; + } + getBucket(e, t, r, n) { + this.aggregatedData[e] || (this.aggregatedData[e] = {}); + var i = this.aggregatedData[e][t]; + return ( + i || + ((i = this.aggregatedData[e][t] = { params: r || {} }), + n && (i.custom = n)), + i + ); + } + get(e, t) { + return t + ? this.aggregatedData[e] && this.aggregatedData[e][t] + : this.aggregatedData[e]; + } + take(e) { + for (var t = {}, r = "", n = !1, i = 0; i < e.length; i++) + (t[(r = e[i])] = Object.values(this.aggregatedData[r] || {})), + t[r].length && (n = !0), + delete this.aggregatedData[r]; + return n ? t : null; + } + } + function x(e, t) { + return null == e + ? (function (e) { + e ? e.c++ : (e = { c: 1 }); + return e; + })(t) + : t + ? (t.c || (t = T(t.t)), + (t.c += 1), + (t.t += e), + (t.sos += e * e), + e > t.max && (t.max = e), + e < t.min && (t.min = e), + t) + : { t: e }; + } + function T(e) { + return { t: e, min: e, max: e, sos: e * e, c: 1 }; + } + var A = i(384); + var E = i(9908), + N = i(2843), + S = i(3878), + O = i(782), + I = i(1863); + class _ extends v { + static featureName = (() => O.T)(); + constructor(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + super(e, t, O.T, r), + h.RI && + ((0, N.u)( + () => (0, E.p)("docHidden", [(0, I.t)()], void 0, O.T, this.ee), + !0 + ), + (0, S.sp)("pagehide", () => + (0, E.p)("winPagehide", [(0, I.t)()], void 0, O.T, this.ee) + ), + this.importAggregator()); + } + } + var j = i(3969); + class P extends v { + static featureName = (() => j.TZ)(); + constructor(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + super(e, t, j.TZ, r), this.importAggregator(); + } + } + var C = i(6774), + k = i(3304); + class L { + constructor(e, t, r, n, i) { + (this.name = "UncaughtError"), + (this.message = "string" == typeof e ? e : (0, k.A)(e)), + (this.sourceURL = t), + (this.line = r), + (this.column = n), + (this.__newrelic = i); + } + } + function D(e) { + return K(e) + ? e + : new L( + void 0 !== e?.message ? e.message : e, + e?.filename || e?.sourceURL, + e?.lineno || e?.line, + e?.colno || e?.col, + e?.__newrelic + ); + } + function H(e) { + let t = "Unhandled Promise Rejection"; + if (K(e?.reason)) + try { + return ( + (e.reason.message = t + ": " + e.reason.message), D(e.reason) + ); + } catch (t) { + return D(e.reason); + } + if (void 0 === e.reason) return D(t); + const r = D(e.reason); + return (r.message = t + ": " + r?.message), r; + } + function M(e) { + if ( + e.error instanceof SyntaxError && + !/:\d+$/.test(e.error.stack?.trim()) + ) { + const t = new L( + e.message, + e.filename, + e.lineno, + e.colno, + e.error.__newrelic + ); + return (t.name = SyntaxError.name), t; + } + return K(e.error) ? e.error : D(e); + } + function K(e) { + return e instanceof Error && !!e.stack; + } + class U extends v { + static featureName = (() => C.T)(); + #r = !1; + constructor(e, r) { + let n = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + super(e, r, C.T, n); + try { + this.removeOnAbort = new AbortController(); + } catch (e) {} + this.ee.on("internal-error", (e) => { + this.abortHandler && + (0, E.p)( + "ierr", + [D(e), (0, I.t)(), !0, {}, this.#r], + void 0, + this.featureName, + this.ee + ); + }), + this.ee.on(t.G4.REPLAY_RUNNING, (e) => { + this.#r = e; + }), + h.gm.addEventListener( + "unhandledrejection", + (e) => { + this.abortHandler && + (0, E.p)( + "err", + [ + H(e), + (0, I.t)(), + !1, + { unhandledPromiseRejection: 1 }, + this.#r, + ], + void 0, + this.featureName, + this.ee + ); + }, + (0, S.jT)(!1, this.removeOnAbort?.signal) + ), + h.gm.addEventListener( + "error", + (e) => { + this.abortHandler && + (0, E.p)( + "err", + [M(e), (0, I.t)(), !1, {}, this.#r], + void 0, + this.featureName, + this.ee + ); + }, + (0, S.jT)(!1, this.removeOnAbort?.signal) + ), + (this.abortHandler = this.#n), + this.importAggregator(); + } + #n() { + this.removeOnAbort?.abort(), (this.abortHandler = void 0); + } + } + var G = i(8990); + let B = 1; + const V = "nr@id"; + function F(e) { + const t = typeof e; + return !e || ("object" !== t && "function" !== t) + ? -1 + : e === h.gm + ? 0 + : (0, G.I)(e, V, function () { + return B++; + }); + } + function W(e) { + if ("string" == typeof e && e.length) return e.length; + if ("object" == typeof e) { + if ( + "undefined" != typeof ArrayBuffer && + e instanceof ArrayBuffer && + e.byteLength + ) + return e.byteLength; + if ("undefined" != typeof Blob && e instanceof Blob && e.size) + return e.size; + if (!("undefined" != typeof FormData && e instanceof FormData)) + try { + return (0, k.A)(e).length; + } catch (e) { + return; + } + } + } + var z = i(8941), + Z = i(7485); + class q { + constructor(e) { + this.agentIdentifier = e; + } + generateTracePayload(e) { + if (!this.shouldGenerateTrace(e)) return null; + var t = (0, a.oC)(this.agentIdentifier); + if (!t) return null; + var n = (t.accountID || "").toString() || null, + i = (t.agentID || "").toString() || null, + o = (t.trustKey || "").toString() || null; + if (!n || !i) return null; + var s = (0, r.ZF)(), + c = (0, r.el)(), + u = Date.now(), + d = { spanId: s, traceId: c, timestamp: u }; + return ( + (e.sameOrigin || + (this.isAllowedOrigin(e) && + this.useTraceContextHeadersForCors())) && + ((d.traceContextParentHeader = + this.generateTraceContextParentHeader(s, c)), + (d.traceContextStateHeader = this.generateTraceContextStateHeader( + s, + u, + n, + i, + o + ))), + ((e.sameOrigin && !this.excludeNewrelicHeader()) || + (!e.sameOrigin && + this.isAllowedOrigin(e) && + this.useNewrelicHeaderForCors())) && + (d.newrelicHeader = this.generateTraceHeader(s, c, u, n, i, o)), + d + ); + } + generateTraceContextParentHeader(e, t) { + return "00-" + t + "-" + e + "-01"; + } + generateTraceContextStateHeader(e, t, r, n, i) { + return i + "@nr=0-1-" + r + "-" + n + "-" + e + "----" + t; + } + generateTraceHeader(e, t, r, n, i, o) { + if (!("function" == typeof h.gm?.btoa)) return null; + var a = { + v: [0, 1], + d: { ty: "Browser", ac: n, ap: i, id: e, tr: t, ti: r }, + }; + return o && n !== o && (a.d.tk = o), btoa((0, k.A)(a)); + } + shouldGenerateTrace(e) { + return this.isDtEnabled() && this.isAllowedOrigin(e); + } + isAllowedOrigin(e) { + var t = !1, + r = {}; + if ( + ((0, a.gD)(this.agentIdentifier, "distributed_tracing") && + (r = (0, a.D0)(this.agentIdentifier).distributed_tracing), + e.sameOrigin) + ) + t = !0; + else if (r.allowed_origins instanceof Array) + for (var n = 0; n < r.allowed_origins.length; n++) { + var i = (0, Z.D)(r.allowed_origins[n]); + if ( + e.hostname === i.hostname && + e.protocol === i.protocol && + e.port === i.port + ) { + t = !0; + break; + } + } + return t; + } + isDtEnabled() { + var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); + return !!e && !!e.enabled; + } + excludeNewrelicHeader() { + var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); + return !!e && !!e.exclude_newrelic_header; + } + useNewrelicHeaderForCors() { + var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); + return !!e && !1 !== e.cors_use_newrelic_header; + } + useTraceContextHeadersForCors() { + var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); + return !!e && !!e.cors_use_tracecontext_headers; + } + } + var Y = i(9300), + X = i(7295), + J = ["load", "error", "abort", "timeout"], + Q = J.length, + ee = a.hR.REQ, + te = a.hR.XHR; + class re extends v { + static featureName = (() => Y.T)(); + constructor(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + super(e, t, Y.T, r), + (this.dt = new q(e)), + (this.handler = (e, t, r, n) => (0, E.p)(e, t, r, n, this.ee)); + try { + const e = { + xmlhttprequest: "xhr", + fetch: "fetch", + beacon: "beacon", + }; + h.gm?.performance?.getEntriesByType("resource").forEach((t) => { + if (t.initiatorType in e && 0 !== t.responseStatus) { + const r = { status: t.responseStatus }, + n = { + rxSize: t.transferSize, + duration: Math.floor(t.duration), + cbTime: 0, + }; + ne(r, t.name), + this.handler( + "xhr", + [r, n, t.startTime, t.responseEnd, e[t.initiatorType]], + void 0, + o.K.ajax + ); + } + }); + } catch (e) {} + (0, z.NZ)(this.ee), + (0, z.bX)(this.ee), + (function (e, t, r, n) { + function i(e) { + var t = this; + (t.totalCbs = 0), + (t.called = 0), + (t.cbTime = 0), + (t.end = x), + (t.ended = !1), + (t.xhrGuids = {}), + (t.lastSize = null), + (t.loadCaptureCalled = !1), + (t.params = this.params || {}), + (t.metrics = this.metrics || {}), + e.addEventListener( + "load", + function (r) { + T(t, e); + }, + (0, S.jT)(!1) + ), + h.lR || + e.addEventListener( + "progress", + function (e) { + t.lastSize = e.loaded; + }, + (0, S.jT)(!1) + ); + } + function s(e) { + (this.params = { method: e[0] }), + ne(this, e[1]), + (this.metrics = {}); + } + function c(t, r) { + var i = (0, a.oC)(e); + i.xpid && + this.sameOrigin && + r.setRequestHeader("X-NewRelic-ID", i.xpid); + var o = n.generateTracePayload(this.parsedOrigin); + if (o) { + var s = !1; + o.newrelicHeader && + (r.setRequestHeader("newrelic", o.newrelicHeader), + (s = !0)), + o.traceContextParentHeader && + (r.setRequestHeader( + "traceparent", + o.traceContextParentHeader + ), + o.traceContextStateHeader && + r.setRequestHeader( + "tracestate", + o.traceContextStateHeader + ), + (s = !0)), + s && (this.dt = o); + } + } + function u(e, r) { + var n = this.metrics, + i = e[0], + o = this; + if (n && i) { + var a = W(i); + a && (n.txSize = a); + } + (this.startTime = (0, I.t)()), + (this.body = i), + (this.listener = function (e) { + try { + "abort" !== e.type || + o.loadCaptureCalled || + (o.params.aborted = !0), + ("load" !== e.type || + (o.called === o.totalCbs && + (o.onloadCalled || "function" != typeof r.onload) && + "function" == typeof o.end)) && + o.end(r); + } catch (e) { + try { + t.emit("internal-error", [e]); + } catch (e) {} + } + }); + for (var s = 0; s < Q; s++) + r.addEventListener(J[s], this.listener, (0, S.jT)(!1)); + } + function d(e, t, r) { + (this.cbTime += e), + t ? (this.onloadCalled = !0) : (this.called += 1), + this.called !== this.totalCbs || + (!this.onloadCalled && "function" == typeof r.onload) || + "function" != typeof this.end || + this.end(r); + } + function l(e, t) { + var r = "" + F(e) + !!t; + this.xhrGuids && + !this.xhrGuids[r] && + ((this.xhrGuids[r] = !0), (this.totalCbs += 1)); + } + function f(e, t) { + var r = "" + F(e) + !!t; + this.xhrGuids && + this.xhrGuids[r] && + (delete this.xhrGuids[r], (this.totalCbs -= 1)); + } + function g() { + this.endTime = (0, I.t)(); + } + function p(e, r) { + r instanceof te && + "load" === e[0] && + t.emit("xhr-load-added", [e[1], e[2]], r); + } + function m(e, r) { + r instanceof te && + "load" === e[0] && + t.emit("xhr-load-removed", [e[1], e[2]], r); + } + function v(e, t, r) { + t instanceof te && + ("onload" === r && (this.onload = !0), + ("load" === (e[0] && e[0].type) || this.onload) && + (this.xhrCbStart = (0, I.t)())); + } + function b(e, r) { + this.xhrCbStart && + t.emit( + "xhr-cb-time", + [(0, I.t)() - this.xhrCbStart, this.onload, r], + r + ); + } + function y(e) { + var t, + r = e[1] || {}; + if ( + ("string" == typeof e[0] + ? 0 === (t = e[0]).length && + h.RI && + (t = "" + h.gm.location.href) + : e[0] && e[0].url + ? (t = e[0].url) + : h.gm?.URL && e[0] && e[0] instanceof URL + ? (t = e[0].href) + : "function" == typeof e[0].toString && + (t = e[0].toString()), + "string" == typeof t && 0 !== t.length) + ) { + t && + ((this.parsedOrigin = (0, Z.D)(t)), + (this.sameOrigin = this.parsedOrigin.sameOrigin)); + var i = n.generateTracePayload(this.parsedOrigin); + if (i && (i.newrelicHeader || i.traceContextParentHeader)) + if (e[0] && e[0].headers) + s(e[0].headers, i) && (this.dt = i); + else { + var o = {}; + for (var a in r) o[a] = r[a]; + (o.headers = new Headers(r.headers || {})), + s(o.headers, i) && (this.dt = i), + e.length > 1 ? (e[1] = o) : e.push(o); + } + } + function s(e, t) { + var r = !1; + return ( + t.newrelicHeader && + (e.set("newrelic", t.newrelicHeader), (r = !0)), + t.traceContextParentHeader && + (e.set("traceparent", t.traceContextParentHeader), + t.traceContextStateHeader && + e.set("tracestate", t.traceContextStateHeader), + (r = !0)), + r + ); + } + } + function w(e, t) { + (this.params = {}), + (this.metrics = {}), + (this.startTime = (0, I.t)()), + (this.dt = t), + e.length >= 1 && (this.target = e[0]), + e.length >= 2 && (this.opts = e[1]); + var r, + n = this.opts || {}, + i = this.target; + "string" == typeof i + ? (r = i) + : "object" == typeof i && i instanceof ee + ? (r = i.url) + : h.gm?.URL && + "object" == typeof i && + i instanceof URL && + (r = i.href), + ne(this, r); + var o = ( + "" + ((i && i instanceof ee && i.method) || n.method || "GET") + ).toUpperCase(); + (this.params.method = o), + (this.body = n.body), + (this.txSize = W(n.body) || 0); + } + function R(e, t) { + if ( + ((this.endTime = (0, I.t)()), + this.params || (this.params = {}), + (0, X.iW)(this.params)) + ) + return; + let n; + (this.params.status = t ? t.status : 0), + "string" == typeof this.rxSize && + this.rxSize.length > 0 && + (n = +this.rxSize); + const i = { + txSize: this.txSize, + rxSize: n, + duration: (0, I.t)() - this.startTime, + }; + r( + "xhr", + [this.params, i, this.startTime, this.endTime, "fetch"], + this, + o.K.ajax + ); + } + function x(e) { + const t = this.params, + n = this.metrics; + if (!this.ended) { + this.ended = !0; + for (let t = 0; t < Q; t++) + e.removeEventListener(J[t], this.listener, !1); + t.aborted || + (0, X.iW)(t) || + ((n.duration = (0, I.t)() - this.startTime), + this.loadCaptureCalled || 4 !== e.readyState + ? null == t.status && (t.status = 0) + : T(this, e), + (n.cbTime = this.cbTime), + r( + "xhr", + [t, n, this.startTime, this.endTime, "xhr"], + this, + o.K.ajax + )); + } + } + function T(e, r) { + e.params.status = r.status; + var n = (function (e, t) { + var r = e.responseType; + return "json" === r && null !== t + ? t + : "arraybuffer" === r || "blob" === r || "json" === r + ? W(e.response) + : "text" === r || "" === r || void 0 === r + ? W(e.responseText) + : void 0; + })(r, e.lastSize); + if ((n && (e.metrics.rxSize = n), e.sameOrigin)) { + var i = r.getResponseHeader("X-NewRelic-App-Data"); + i && + ((0, E.p)( + j.rs, + ["Ajax/CrossApplicationTracing/Header/Seen"], + void 0, + o.K.metrics, + t + ), + (e.params.cat = i.split(", ").pop())); + } + e.loadCaptureCalled = !0; + } + t.on("new-xhr", i), + t.on("open-xhr-start", s), + t.on("open-xhr-end", c), + t.on("send-xhr-start", u), + t.on("xhr-cb-time", d), + t.on("xhr-load-added", l), + t.on("xhr-load-removed", f), + t.on("xhr-resolved", g), + t.on("addEventListener-end", p), + t.on("removeEventListener-end", m), + t.on("fn-end", b), + t.on("fetch-before-start", y), + t.on("fetch-start", w), + t.on("fn-start", v), + t.on("fetch-done", R); + })(e, this.ee, this.handler, this.dt), + this.importAggregator(); + } + } + function ne(e, t) { + var r = (0, Z.D)(t), + n = e.params || e; + (n.hostname = r.hostname), + (n.port = r.port), + (n.protocol = r.protocol), + (n.host = r.hostname + ":" + r.port), + (n.pathname = r.pathname), + (e.parsedOrigin = r), + (e.sameOrigin = r.sameOrigin); + } + var ie = i(3738); + const { + He: oe, + bD: ae, + d3: se, + Kp: ce, + TZ: ue, + Lc: de, + uP: le, + Rz: fe, + } = ie; + class he extends v { + static featureName = (() => ue)(); + constructor(e, t) { + super( + e, + t, + ue, + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] + ); + if (!(0, p.V)(this.agentIdentifier)) + return void (0, d.x3)(this.agentIdentifier, this.featureName); + const r = this.ee; + let n; + (0, z.vC)(r), + (this.eventsEE = (0, z.um)(r)), + this.eventsEE.on(le, function (e, t) { + this.bstStart = (0, I.t)(); + }), + this.eventsEE.on(de, function (e, t) { + (0, + E.p)("bst", [e[0], t, this.bstStart, (0, I.t)()], void 0, o.K.sessionTrace, r); + }), + r.on(fe + se, function (e) { + (this.time = (0, I.t)()), + (this.startPath = location.pathname + location.hash); + }), + r.on(fe + ce, function (e) { + (0, + E.p)("bstHist", [location.pathname + location.hash, this.startPath, this.time], void 0, o.K.sessionTrace, r); + }); + try { + (n = new PerformanceObserver((e) => { + const t = e.getEntries(); + (0, E.p)(oe, [t], void 0, o.K.sessionTrace, r); + })), + n.observe({ type: ae, buffered: !0 }); + } catch (e) {} + this.importAggregator({ resourceObserver: n }); + } + } + var ge = i(2614); + class pe extends v { + static featureName = (() => t.TZ)(); + #i; + constructor(e, r) { + let n, + i = + !(arguments.length > 2 && void 0 !== arguments[2]) || + arguments[2]; + super(e, r, t.TZ, i), (this.replayRunning = !1); + try { + n = JSON.parse( + localStorage.getItem("".concat(ge.H3, "_").concat(ge.uh)) + ); + } catch (e) {} + (0, g.SR)(e) && this.ee.on(t.G4.RECORD, () => this.#o()), + this.#a(n) + ? ((this.#i = n?.sessionReplayMode), this.#s()) + : this.importAggregator(), + this.ee.on("err", (e) => { + this.replayRunning && + ((this.errorNoticed = !0), + (0, E.p)( + t.G4.ERROR_DURING_REPLAY, + [e], + void 0, + this.featureName, + this.ee + )); + }), + this.ee.on(t.G4.REPLAY_RUNNING, (e) => { + this.replayRunning = e; + }); + } + #a(e) { + return ( + (e && + (e.sessionReplayMode === ge.g.FULL || + e.sessionReplayMode === ge.g.ERROR)) || + (0, g.Aw)(this.agentIdentifier) + ); + } + #c = !1; + async #s(e) { + if (!this.#c) { + this.#c = !0; + try { + const { Recorder: t } = await Promise.all([ + i.e(478), + i.e(249), + ]).then(i.bind(i, 2496)); + (this.recorder ??= new t({ + mode: this.#i, + agentIdentifier: this.agentIdentifier, + trigger: e, + ee: this.ee, + })), + this.recorder.startRecording(), + (this.abortHandler = this.recorder.stopRecording); + } catch (e) {} + this.importAggregator({ + recorder: this.recorder, + errorNoticed: this.errorNoticed, + }); + } + } + #o() { + this.featAggregate + ? this.featAggregate.mode !== ge.g.FULL && + this.featAggregate.initializeRecording(ge.g.FULL, !0) + : ((this.#i = ge.g.FULL), + this.#s(t.Qb.API), + this.recorder && + this.recorder.parent.mode !== ge.g.FULL && + ((this.recorder.parent.mode = ge.g.FULL), + this.recorder.stopRecording(), + this.recorder.startRecording(), + (this.abortHandler = this.recorder.stopRecording))); + } + } + var me = i(3962); + class ve extends v { + static featureName = (() => me.TZ)(); + constructor(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + if ((super(e, t, me.TZ, r), !h.RI || !a.hR.MO)) return; + const n = (0, z.vC)(this.ee), + i = (0, z.um)(this.ee), + o = () => + (0, E.p)( + "newURL", + [(0, I.t)(), "" + window.location], + void 0, + this.featureName, + this.ee + ); + n.on("pushState-end", o), n.on("replaceState-end", o); + try { + this.removeOnAbort = new AbortController(); + } catch (e) {} + (0, S.sp)( + "popstate", + (e) => + (0, E.p)( + "newURL", + [e.timeStamp, "" + window.location], + void 0, + this.featureName, + this.ee + ), + !0, + this.removeOnAbort?.signal + ); + let s = !1; + const c = new a.hR.MO((e, t) => { + s || + ((s = !0), + requestAnimationFrame(() => { + (0, E.p)( + "newDom", + [(0, I.t)()], + void 0, + this.featureName, + this.ee + ), + (s = !1); + })); + }), + u = (0, m.s)( + (e) => { + (0, E.p)("newUIEvent", [e], void 0, this.featureName, this.ee), + c.observe(document.body, { + attributes: !0, + childList: !0, + subtree: !0, + characterData: !0, + }); + }, + 100, + { leading: !0 } + ); + i.on("fn-start", (e) => { + let [t] = e; + me.tC.includes(t?.type) && u(t); + }); + for (let e of me.tC) document.addEventListener(e, () => {}); + (this.abortHandler = function () { + this.removeOnAbort?.abort(), + c.disconnect(), + (this.abortHandler = void 0); + }), + this.importAggregator({ domObserver: c }); + } + } + var be = i(7378); + const { + TZ: ye, + d3: we, + Kp: Re, + $p: xe, + wW: Te, + e5: Ae, + tH: Ee, + uP: Ne, + rw: Se, + Lc: Oe, + } = be; + class Ie extends v { + static featureName = (() => ye)(); + constructor(e, t) { + var r; + if ( + (super( + e, + t, + ye, + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] + ), + (r = this), + !h.RI) + ) + return; + try { + this.removeOnAbort = new AbortController(); + } catch (e) {} + let n, + i = 0; + const o = this.ee.get("tracer"), + a = (0, z.Ri)(this.ee), + s = (0, z.o8)(this.ee), + c = (0, z.MO)(this.ee), + u = (0, z.bX)(this.ee), + d = this.ee.get("events"), + l = (0, z.NZ)(this.ee), + f = (0, z.vC)(this.ee), + g = (0, z.Ak)(this.ee); + function p(e, t) { + f.emit("newURL", ["" + window.location, t]); + } + function m() { + i++, (n = window.location.hash), (this[Ne] = (0, I.t)()); + } + function v() { + i--, window.location.hash !== n && p(0, !0); + var e = (0, I.t)(); + (this[Ae] = ~~this[Ae] + e - this[Ne]), (this[Oe] = e); + } + function b(e, t) { + e.on(t, function () { + this[t] = (0, I.t)(); + }); + } + this.ee.on(Ne, m), + s.on(Se, m), + a.on(Se, m), + this.ee.on(Oe, v), + s.on(Te, v), + a.on(Te, v), + this.ee.on("fn-err", function () { + for ( + var t = arguments.length, n = new Array(t), i = 0; + i < t; + i++ + ) + n[i] = arguments[i]; + n[2]?.__newrelic?.[e] || + (0, E.p)("function-err", [...n], void 0, r.featureName, r.ee); + }), + this.ee.buffer([Ne, Oe, "xhr-resolved"], this.featureName), + d.buffer([Ne], this.featureName), + c.buffer( + ["setTimeout" + Re, "clearTimeout" + we, Ne], + this.featureName + ), + u.buffer([Ne, "new-xhr", "send-xhr" + we], this.featureName), + l.buffer( + [Ee + we, Ee + "-done", Ee + xe + we, Ee + xe + Re], + this.featureName + ), + f.buffer(["newURL"], this.featureName), + g.buffer([Ne], this.featureName), + s.buffer( + ["propagate", Se, Te, "executor-err", "resolve" + we], + this.featureName + ), + o.buffer([Ne, "no-" + Ne], this.featureName), + a.buffer( + ["new-jsonp", "cb-start", "jsonp-error", "jsonp-end"], + this.featureName + ), + b(l, Ee + we), + b(l, Ee + "-done"), + b(a, "new-jsonp"), + b(a, "jsonp-end"), + b(a, "cb-start"), + f.on("pushState-end", p), + f.on("replaceState-end", p), + window.addEventListener( + "hashchange", + p, + (0, S.jT)(!0, this.removeOnAbort?.signal) + ), + window.addEventListener( + "load", + p, + (0, S.jT)(!0, this.removeOnAbort?.signal) + ), + window.addEventListener( + "popstate", + function () { + p(0, i > 1); + }, + (0, S.jT)(!0, this.removeOnAbort?.signal) + ), + (this.abortHandler = this.#n), + this.importAggregator(); + } + #n() { + this.removeOnAbort?.abort(), (this.abortHandler = void 0); + } + } + var _e = i(3333); + class je extends v { + static featureName = (() => _e.T)(); + constructor(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + super(e, t, _e.T, r); + [(0, a.gD)(this.agentIdentifier, "page_action.enabled")].some( + (e) => e + ) + ? this.importAggregator() + : (0, d.x3)(this.agentIdentifier, this.featureName); + } + } + var Pe = i(993), + Ce = i(3785); + class ke extends v { + static featureName = (() => Pe.TZ)(); + constructor(e, t) { + let r = + !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + super(e, t, Pe.TZ, r); + const n = this.ee; + this.ee.on("wrap-logger-end", function (e) { + let [t] = e; + const { level: r, customAttributes: i } = this; + (0, Ce.R)(n, t, i, r); + }), + this.importAggregator(); + } + } + new (class extends n { + constructor(t, r) { + super(r), + h.gm + ? ((this.sharedAggregator = new R({ + agentIdentifier: this.agentIdentifier, + })), + (this.features = {}), + (0, A.bQ)(this.agentIdentifier, this), + (this.desiredFeatures = new Set(t.features || [])), + this.desiredFeatures.add(y), + (this.runSoftNavOverSpa = [...this.desiredFeatures].some( + (e) => e.featureName === o.K.softNav + )), + (0, u.j)(this, t, t.loaderType || "agent"), + this.run()) + : (0, e.R)(21); + } + get config() { + return { + info: this.info, + init: this.init, + loader_config: this.loader_config, + runtime: this.runtime, + }; + } + run() { + try { + const t = c(this.agentIdentifier), + r = [...this.desiredFeatures]; + r.sort((e, t) => o.P[e.featureName] - o.P[t.featureName]), + r.forEach((r) => { + if (!t[r.featureName] && r.featureName !== o.K.pageViewEvent) + return; + if (this.runSoftNavOverSpa && r.featureName === o.K.spa) return; + if (!this.runSoftNavOverSpa && r.featureName === o.K.softNav) + return; + (function (e) { + switch (e) { + case o.K.ajax: + return [o.K.jserrors]; + case o.K.sessionTrace: + return [o.K.ajax, o.K.pageViewEvent]; + case o.K.sessionReplay: + return [o.K.sessionTrace]; + case o.K.pageViewTiming: + return [o.K.pageViewEvent]; + default: + return []; + } + })(r.featureName).every((e) => e in this.features) || + (0, e.R)(36, r.featureName), + (this.features[r.featureName] = new r( + this.agentIdentifier, + this.sharedAggregator + )); + }); + } catch (t) { + (0, e.R)(22, t); + for (const e in this.features) this.features[e].abortHandler?.(); + const r = (0, A.Zm)(); + delete r.initializedAgents[this.agentIdentifier]?.api, + delete r.initializedAgents[this.agentIdentifier]?.features, + delete this.sharedAggregator; + return r.ee.get(this.agentIdentifier).abort(), !1; + } + } + })({ + features: [re, y, _, he, pe, P, U, je, ke, ve, Ie], + loaderType: "spa", + }); + })(); +})(); diff --git a/samples/dash-control.css b/samples/dash-control.css new file mode 100644 index 0000000..1f315fe --- /dev/null +++ b/samples/dash-control.css @@ -0,0 +1,98 @@ +@import url("https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"); + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +.main { + background-color: #010d15; + width: 100%; + height: 100vh; + position: relative; + font-family: "Roboto Condensed", sans-serif; + color: white; +} + +.title { + color: white; + padding: 2% 35%; + font-size: 140%; +} + +#videoContainer { + width: 90%; + height: 70%; + margin: 3% auto; + position: relative; +} + +.events { + margin: 2%; + padding: 4% 2%; + width: 88%; + height: 20%; +} + +.event-name { + background-color: white; + color: #010d15; + padding: 2%; + font-size: 16px; + font-weight: 700; +} + +#quailtySelector { + margin: 10px 0; +} + +.myPlayer { + width: 90%; + height: 70%; + border-radius: 2%; +} + +.qualityLevels { + background-color: orangered; + color: white; + padding: 0.5%; + border: 2px solid orangered; +} + +#loader { + display: none; + position: absolute; /* Change to absolute positioning */ + left: 40%; /* Center horizontally */ + top: 25%; /* Center vertically */ + transform: translate(-50%, -50%); /* Adjust for centering */ + border: 10px solid #f3f3f3; + border-radius: 50%; + border-top: 10px solid #010d15; + width: 40px; + height: 40px; + animation: spin 2s linear infinite; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +.options { + position: absolute; + top: 2%; + right: 12%; + cursor: pointer; +} + +/* #ad-container { + position: absolute; + top: 0; + left: 0; + width: 100%; +} */ diff --git a/samples/dash-control.js b/samples/dash-control.js new file mode 100644 index 0000000..e6ac50e --- /dev/null +++ b/samples/dash-control.js @@ -0,0 +1,78 @@ +const myPlayer = document.querySelector("#myPlayer"); + +// Create a new instance of the player +const player = new dashjs.MediaPlayer().create(); +player.events = dashjs.MediaPlayer.events; +// for showing attributes of player: "https://reference.dashif.org/dash.js/v4.4.0/samples/dash-if-reference-player/index.html" + +// follow streaming protocol for high quality video to deliverd over internet. +// breaking a video down into smaller chunks and encoding each chunk at diffrent quality levels. + +const url = "https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd"; +//for live stream: +// const url = +// "https://refapp.hbbtv.org/videos/multiperiod_v8.php?drm=0&advert=1&emsg=0&video=v1,v2,v3&audiolang=eng,fin&sublang=eng,fin,swe&mup=2&spd=8"; + +// generic sample: +// "https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd"; +//"https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd", +// const url = +// "https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd"; + +try { + player.initialize(myPlayer, url, false); + + // intializing the tracker and adding events to browser agent + const mediaEvents = nrvideo.Core.addTracker(new nrvideo.DashTracker(player)); + + //poulate quailty levels dropdown + player.on("streamInitialized", function () { + const bitrates = player.getBitrateInfoListFor("video"); + const qualitySelector = document.querySelector("#qualityLevels"); + + // Add 'auto' option + const autoOption = document.createElement("option"); + autoOption.value = "auto"; + autoOption.text = "Auto"; + qualitySelector.appendChild(autoOption); + + // Add bitrate options + bitrates.forEach((level, index) => { + const option = document.createElement("option"); + option.value = index; // Use index to set quality level + option.text = `${level.height}p (${Math.round( + level.bitrate / 1000 + )} kbps)`; + qualitySelector.appendChild(option); + }); + }); + + // Change video quality based on user selection + document.querySelector("#qualityLevels").addEventListener("change", (e) => { + const selectedQuality = e.target.value; + + // document.querySelector("#video-container").style.display = "none"; // Hide video + + loader.style.display = "block"; // Show loader + + if (selectedQuality === "auto") { + player.updateSettings({ + streaming: { abr: { autoSwitchBitrate: { video: true } } }, + }); + } else { + player.updateSettings({ + streaming: { abr: { autoSwitchBitrate: { video: false } } }, + }); + player.setQualityFor("video", parseInt(selectedQuality, 10)); + } + }); + + // Hide loader when quality change completes + player.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_RENDERED, function () { + // console.log("Quality change completed"); + loader.style.display = "none"; // Hide loader + //document.querySelector("#video-container").style.display = "block"; // Show video + }); +} catch (error) { + nrvideo.Core.sendError({ message: error.message }); +} diff --git a/samples/dash-controlbar.html b/samples/dash-controlbar.html new file mode 100644 index 0000000..ca90968 --- /dev/null +++ b/samples/dash-controlbar.html @@ -0,0 +1,41 @@ + + + + + + + Dash js Video Player with quality selection + + + + + + + + + + +
+

Welcome to Dash Js Video Player

+
+
+ +
+ +
+ +
+
+
+
+ + + + diff --git a/samples/dash-demo.html b/samples/dash-demo.html new file mode 100644 index 0000000..7a8855d --- /dev/null +++ b/samples/dash-demo.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + diff --git a/samples/events.js b/samples/events.js new file mode 100644 index 0000000..0b9ba12 --- /dev/null +++ b/samples/events.js @@ -0,0 +1,106 @@ +// All dash events + +{ + ADAPTATION_SET_REMOVED_NO_CAPABILITIES: "adaptationSetRemovedNoCapabilities"; + AST_IN_FUTURE: "astInFuture"; + BASE_URLS_UPDATED: "baseUrlsUpdated"; + BUFFER_EMPTY: "bufferStalled"; + BUFFER_LEVEL_STATE_CHANGED: "bufferStateChanged"; + BUFFER_LEVEL_UPDATED: "bufferLevelUpdated"; + BUFFER_LOADED: "bufferLoaded"; + CAN_PLAY: "canPlay"; + CAN_PLAY_THROUGH: "canPlayThrough"; + CAPTION_CONTAINER_RESIZE: "captionContainerResize"; + CAPTION_RENDERED: "captionRendered"; + CONFORMANCE_VIOLATION: "conformanceViolation"; + CONTENT_STEERING_REQUEST_COMPLETED: "contentSteeringRequestCompleted"; + CUE_ENTER: "cueEnter"; + CUE_EXIT: "cueExit"; + DVB_FONT_DOWNLOAD_ADDED: "dvbFontDownloadAdded"; + DVB_FONT_DOWNLOAD_COMPLETE: "dvbFontDownloadComplete"; + DVB_FONT_DOWNLOAD_FAILED: "dvbFontDownloadFailed"; + DYNAMIC_TO_STATIC: "dynamicToStatic"; + ERROR: "error"; + EVENT_MODE_ON_RECEIVE: "eventModeOnReceive"; + EVENT_MODE_ON_START: "eventModeOnStart"; + FRAGMENT_LOADING_ABANDONED: "fragmentLoadingAbandoned"; + FRAGMENT_LOADING_COMPLETED: "fragmentLoadingCompleted"; + FRAGMENT_LOADING_PROGRESS: "fragmentLoadingProgress"; + FRAGMENT_LOADING_STARTED: "fragmentLoadingStarted"; + INBAND_PRFT: "inbandPrft"; + KEY_ADDED: "public_keyAdded"; + KEY_ERROR: "public_keyError"; + KEY_MESSAGE: "public_keyMessage"; + KEY_SESSION_CLOSED: "public_keySessionClosed"; + KEY_SESSION_CREATED: "public_keySessionCreated"; + KEY_SESSION_REMOVED: "public_keySessionRemoved"; + KEY_SESSION_UPDATED: "public_keySessionUpdated"; + KEY_STATUSES_CHANGED: "public_keyStatusesChanged"; + KEY_SYSTEM_ACCESS_COMPLETE: "public_keySystemAccessComplete"; + KEY_SYSTEM_SELECTED: "public_keySystemSelected"; + LICENSE_REQUEST_COMPLETE: "public_licenseRequestComplete"; + LICENSE_REQUEST_SENDING: "public_licenseRequestSending"; + LOG: "log"; + MANAGED_MEDIA_SOURCE_END_STREAMING: "managedMediaSourceEndStreaming"; + MANAGED_MEDIA_SOURCE_START_STREAMING: "managedMediaSourceStartStreaming"; + MANIFEST_LOADED: "manifestLoaded"; + MANIFEST_LOADING_FINISHED: "manifestLoadingFinished"; + MANIFEST_LOADING_STARTED: "manifestLoadingStarted"; + MANIFEST_VALIDITY_CHANGED: "manifestValidityChanged"; + METRICS_CHANGED: "metricsChanged"; + METRIC_ADDED: "metricAdded"; + METRIC_CHANGED: "metricChanged"; + METRIC_UPDATED: "metricUpdated"; + PERIOD_SWITCH_COMPLETED: "periodSwitchCompleted"; + PERIOD_SWITCH_STARTED: "periodSwitchStarted"; + PLAYBACK_ENDED: "playbackEnded"; + PLAYBACK_ERROR: "playbackError"; + PLAYBACK_LOADED_DATA: "playbackLoadedData"; + PLAYBACK_METADATA_LOADED: "playbackMetaDataLoaded"; + PLAYBACK_NOT_ALLOWED: "playbackNotAllowed"; + PLAYBACK_PAUSED: "playbackPaused"; + PLAYBACK_PLAYING: "playbackPlaying"; + PLAYBACK_PROGRESS: "playbackProgress"; + PLAYBACK_RATE_CHANGED: "playbackRateChanged"; + PLAYBACK_SEEKED: "playbackSeeked"; + PLAYBACK_SEEKING: "playbackSeeking"; + PLAYBACK_STALLED: "playbackStalled"; + PLAYBACK_STARTED: "playbackStarted"; + PLAYBACK_TIME_UPDATED: "playbackTimeUpdated"; + PLAYBACK_VOLUME_CHANGED: "playbackVolumeChanged"; + PLAYBACK_WAITING: "playbackWaiting"; + PROTECTION_CREATED: "public_protectioncreated"; + PROTECTION_DESTROYED: "public_protectiondestroyed"; + QUALITY_CHANGE_RENDERED: "qualityChangeRendered"; + QUALITY_CHANGE_REQUESTED: "qualityChangeRequested"; + REPRESENTATION_SWITCH: "representationSwitch"; + STREAM_ACTIVATED: "streamActivated"; + STREAM_DEACTIVATED: "streamDeactivated"; + STREAM_INITIALIZED: "streamInitialized"; + STREAM_INITIALIZING: "streamInitializing"; + STREAM_TEARDOWN_COMPLETE: "streamTeardownComplete"; + STREAM_UPDATED: "streamUpdated"; + TEXT_TRACKS_ADDED: "allTextTracksAdded"; + TEXT_TRACK_ADDED: "textTrackAdded"; + THROUGHPUT_MEASUREMENT_STORED: "throughputMeasurementStored"; + TRACK_CHANGE_RENDERED: "trackChangeRendered"; + TTML_PARSED: "ttmlParsed"; + TTML_TO_PARSE: "ttmlToParse"; +} + +// diffrent mpd files +const mpdSrcArray = [ + { + bigBuckBunny: "https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd", + }, + { + tearsOfSteel: "https://dash.akamaized.net/akamai/hd/tears/tears.mpd", + }, + { + sintel: "https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd", + }, + { + angelOne: + "https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd", + }, +]; diff --git a/src/__test__/tracker.test.js b/src/__test__/tracker.test.js new file mode 100644 index 0000000..1a56f1f --- /dev/null +++ b/src/__test__/tracker.test.js @@ -0,0 +1,426 @@ +import DashTracker from "../tracker"; +import * as nrvideo from "newrelic-video-core"; + +const player = { + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + duration: jest.fn(), + getCurrentTime: jest.fn(), + getPlaybackRate: jest.fn(), + getBufferedRanges: jest.fn(), + getSeekableRanges: jest.fn(), + getQualityFor: jest.fn(), + on: jest.fn(), + getSource: jest.fn(), + getCurrentTrackFor: jest.fn(), + version: "0.2.0", + setPlayer: jest.fn(), +}; + +const videoBitrateList = [ + { + bitrate: 258157, + height: 180, + mediaType: "video", + qualityIndex: 0, + scanType: null, + width: 426, + }, + { + bitrate: 512345, + height: 240, + mediaType: "video", + qualityIndex: 1, + scanType: null, + width: 640, + }, + { + bitrate: 987654, + height: 360, + mediaType: "video", + qualityIndex: 2, + scanType: null, + width: 854, + }, + { + bitrate: 1234567, + height: 480, + mediaType: "video", + qualityIndex: 3, + scanType: null, + width: 1280, + }, + { + bitrate: 2345678, + height: 720, + mediaType: "video", + qualityIndex: 4, + scanType: null, + width: 1920, + }, +]; + +const tracker = new DashTracker(player, {}); + +describe("Dash Tracker name, version, src", () => { + it("should return the tracker name as dash", () => { + //assertion + expect(tracker.getTrackerName()).toBe("dash"); + }); + + it("should return version 0.2.0", () => { + expect(tracker.getTrackerVersion()).toBe("0.2.0"); + }); + + it("should return source of player", () => { + const url = "https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd"; + player.getSource = jest.fn().mockReturnValue(url); + expect(tracker.getSrc()).toBe(url); + }); +}); + +describe("Dash Tracker Live Functionality", () => { + it("isLive should return true if player is dynamic", () => { + player.isDynamic = jest.fn().mockReturnValue(true); + expect(tracker.isLive()).toBe(true); + }); + + it("isLive should return false if player is not dynamic", () => { + player.isDynamic = jest.fn().mockReturnValue(false); + expect(tracker.isLive()).toBe(false); + }); +}); + +describe("setPlayer", () => { + it("should call setPlayer method of VideoTracker", () => { + const tag = " "; + tracker.setPlayer = jest.fn(); + tracker.setPlayer(player, tag); + expect(tracker.setPlayer).toHaveBeenCalledWith(player, tag); + }); +}); + +describe("getDuration, playRate", () => { + it("should return the duration of the player", () => { + const mpd = 60; + tracker.getDuration = player.duration.mockReturnValue(mpd); + expect(tracker.getDuration()).toBe(mpd); + }); + + it("should return the playrate of the player", () => { + const rate = 1; + tracker.getPlayrate = player.getPlaybackRate.mockReturnValue(rate); + expect(tracker.getPlayrate()).toBe(rate); + }); +}); + +describe("getTrack", () => { + const audio = { + lang: "en", + }; + player.getCurrentTrackFor = jest.fn().mockReturnValue(audio); + + it("should return the current track of the player", () => { + const result = tracker.getTrack(); + expect(result).toEqual(audio); + }); + + it("should return the language of the current track", () => { + const result = tracker.getLanguage(audio.lang); + expect(result).toBe("en"); + }); +}); + +describe("getDashBitrate", () => { + it("should return the bitrate info for the specified media type", () => { + const videoBitrate = 2; // Assuming videoBitrate is 2 for testing purposes + const expectedBitrateInfo = { + bitrate: 987654, + height: 360, + mediaType: "video", + qualityIndex: 2, + scanType: null, + width: 854, + }; + tracker.player.getQualityFor = jest.fn().mockReturnValue(videoBitrate); + tracker.player.getBitrateInfoListFor = jest + .fn() + .mockReturnValue(videoBitrateList); + + const result = tracker.getDashBitrate("video"); + + expect(result).toEqual(expectedBitrateInfo); + }); + + describe("getRenditionBitrate", () => { + it("should return the bitrate of the current video rendition", () => { + const currentBitrate = { + bitrate: 987654, + height: 360, + mediaType: "video", + qualityIndex: 2, + scanType: null, + width: 854, + }; + tracker.getDashBitrate = jest.fn().mockReturnValue(currentBitrate); + + const result = tracker.getRenditionBitrate(); + + expect(result).toBe(currentBitrate.bitrate); + }); + }); + + describe("getRenditionWidth", () => { + it("should return the width of the current video rendition", () => { + const currentBitrate = { + bitrate: 987654, + height: 360, + mediaType: "video", + qualityIndex: 2, + scanType: null, + width: 854, + }; + tracker.getDashBitrate = jest.fn().mockReturnValue(currentBitrate); + + const result = tracker.getRenditionWidth(); + + expect(result).toBe(currentBitrate.width); + }); + }); + + describe("getRenditionHeight", () => { + it("should return the height of the current video rendition", () => { + const currentBitrate = { + bitrate: 987654, + height: 360, + mediaType: "video", + qualityIndex: 2, + scanType: null, + width: 854, + }; + tracker.getDashBitrate = jest.fn().mockReturnValue(currentBitrate); + + const result = tracker.getRenditionHeight(); + + expect(result).toBe(currentBitrate.height); + }); + }); +}); + +describe("registerListeners", () => { + it("should register event listeners for various video events", () => { + const mockOnReady = jest.fn(); + const mockOnDownload = jest.fn(); + const mockOnPlay = jest.fn(); + const mockOnPlaying = jest.fn(); + const mockOnPause = jest.fn(); + const mockOnSeeking = jest.fn(); + const mockOnSeeked = jest.fn(); + const mockOnError = jest.fn(); + const mockOnEnded = jest.fn(); + const mockOnBufferingStalled = jest.fn(); + const mockOnBufferingLoaded = jest.fn(); + const mockOnAdaptation = jest.fn(); + + tracker.onReady = mockOnReady; + tracker.onDownload = mockOnDownload; + tracker.onPlay = mockOnPlay; + tracker.onPlaying = mockOnPlaying; + tracker.onPause = mockOnPause; + tracker.onSeeking = mockOnSeeking; + tracker.onSeeked = mockOnSeeked; + tracker.onError = mockOnError; + tracker.onEnded = mockOnEnded; + tracker.onBufferingStalled = mockOnBufferingStalled; + tracker.onBufferingLoaded = mockOnBufferingLoaded; + tracker.onAdaptation = mockOnAdaptation; + + tracker.registerListeners(); + + expect(tracker.tag.on).toHaveBeenCalledWith( + "streamInitialized", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackMetaDataLoaded", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackLoadedData", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "canPlay", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackPlaying", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackPaused", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackSeeking", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackSeeked", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith("error", expect.any(Function)); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackError", + expect.any(Function) + ); + expect(tracker.tag.on).toHaveBeenCalledWith( + "playbackEnded", + expect.any(Function) + ); + expect(tracker.player.on).toHaveBeenCalledWith( + "bufferStalled", + expect.any(Function) + ); + expect(tracker.player.on).toHaveBeenCalledWith( + "bufferLoaded", + expect.any(Function) + ); + expect(tracker.player.on).toHaveBeenCalledWith( + "qualityChangeRendered", + expect.any(Function) + ); + }); +}); + +describe("unregisterListeners", () => { + it("should unregister event listeners for various video events", () => { + const mockOff = jest.fn(); + + tracker.tag.off = mockOff; + tracker.player.off = mockOff; + + tracker.unregisterListeners(); + + expect(tracker.tag.off).toHaveBeenCalledWith( + "streamInitialized", + tracker.onReady + ); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackMetaDataLoaded", + tracker.onDownload + ); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackLoadedData", + tracker.onDownload + ); + expect(tracker.tag.off).toHaveBeenCalledWith("canPlay", tracker.onPlay); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackPlaying", + tracker.onPlaying + ); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackPaused", + tracker.onPause + ); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackSeeking", + tracker.onSeeking + ); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackSeeked", + tracker.onSeeked + ); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackError", + tracker.onError + ); + expect(tracker.tag.off).toHaveBeenCalledWith( + "playbackEnded", + tracker.onEnded + ); + expect(tracker.player.off).toHaveBeenCalledWith( + "bufferStalled", + tracker.onBufferingStalled + ); + expect(tracker.player.off).toHaveBeenCalledWith( + "bufferLoaded", + tracker.onBufferingLoaded + ); + expect(tracker.player.off).toHaveBeenCalledWith( + "trackChangeRendered", + tracker.onAdaptation + ); + }); +}); + +describe("getPlayerVersion", () => { + it("should return the version of the player", () => { + const version = "1.0.0"; + tracker.player.getVersion = jest.fn().mockReturnValue(version); + expect(tracker.getPlayerVersion()).toBe(version); + }); +}); + +describe("getPreload", () => { + it("should return the preload value of the player", () => { + const preloadValue = "auto"; + tracker.player.preload = jest.fn().mockReturnValue(preloadValue); + expect(tracker.getPreload()).toBe(preloadValue); + }); +}); + +describe("isAutoplayed", () => { + it("should return the autoplay value of the player", () => { + const autoplayValue = true; + tracker.player.getAutoPlay = jest.fn().mockReturnValue(autoplayValue); + expect(tracker.isAutoplayed()).toBe(autoplayValue); + }); +}); + +describe("Tracker Event Handlers", () => { + let tracker; + beforeEach(() => { + // create a new instance of the tracker before each test + + tracker = new DashTracker(player, {}); + + // mock the methods being called in the event handlers + tracker.sendPlayerReady = jest.fn(); + tracker.sendDownload = jest.fn(); + tracker.sendRequest = jest.fn(); + tracker.sendResume = jest.fn(); + tracker.sendStart = jest.fn(); + tracker.sendRenditionChanged = jest.fn(); + }); + + it("should call sendPlayerReady on onReady", () => { + tracker.onReady(); + expect(tracker.sendPlayerReady).toHaveBeenCalled(); + }); + + it("should call sendDownload on onDownload", () => { + const eventMock = { type: "download" }; + tracker.onDownload(eventMock); + expect(tracker.sendDownload).toHaveBeenCalledWith({ + state: eventMock.type, + }); + }); + + it("should call sendRequest on onPlay", () => { + tracker.onPlay(); + expect(tracker.sendRequest).toHaveBeenCalled(); + }); + + it("should call sendResume and sendStart on onPlaying", () => { + tracker.onPlaying(); + expect(tracker.sendResume).toHaveBeenCalled(); + expect(tracker.sendStart).toHaveBeenCalled(); + }); + + it("should call sendRenditionChanged on onAdaptation", () => { + const event = { type: "adaptation" }; + tracker.onAdaptation(event); + expect(tracker.sendRenditionChanged).toHaveBeenCalled(); + }); +}); diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..f3b2e1d --- /dev/null +++ b/src/index.js @@ -0,0 +1,6 @@ +import * as nrvideo from "newrelic-video-core"; +import Tracker from "./tracker"; + +nrvideo.DashTracker = Tracker; + +module.exports = nrvideo; diff --git a/src/tracker.js b/src/tracker.js new file mode 100644 index 0000000..a6d9035 --- /dev/null +++ b/src/tracker.js @@ -0,0 +1,247 @@ +import * as nrvideo from "newrelic-video-core"; +import { version } from "../package.json"; + +export default class DashTracker extends nrvideo.VideoTracker { + constructor(player, options) { + super(player, options); + + // console.log("player", this.player); + // player.on("manifestLoaded", (e) => { + // console.log("manifestLoaded", e.data); + // }); + } + + setPlayer(player, tag) { + if (tag && player.getVideoElement) tag = player.getVideoElement(); + nrvideo.VideoTracker.prototype.setPlayer.call(this, player, tag); + } + + getTrackerName() { + return "dash"; + } + + getTrackerVersion() { + return version; + } + + getTitle() { + //https://github.com/Dash-Industry-Forum/dash.js/issues/2961 + // https://reference.dashif.org/dash.js/nightly/samples/getting-started/listening-to-events.html + /* Not has any method for getting title */ + } + + isLive() { + return this.player.isDynamic(); + } + + getSrc() { + return this.player.getSource(); + } + + getPlayrate() { + return this.player.getPlaybackRate(); + } + + getDuration() { + // Returns the duration of the MPD in seconds + return this.player.duration(); + } + + //implementing getTrack() method for dash.js + getTrack() { + const track = this.player.getCurrentTrackFor("audio"); + return track; + } + + getLanguage() { + const activeTrack = this.getTrack(); + return activeTrack ? activeTrack.lang : ""; + //return this.getTrack().lang; + } + + getDashBitrate(type) { + // MediaPlayer == getQualityFor + /* + Gets the current download quality for media type video, audio or images. + For video and audio types the ABR rules update this value before every new download + unless autoSwitchBitrate is set to fasle + */ + const videoBitrate = this.player.getQualityFor("video"); + + return this.player.getBitrateInfoListFor("video")[videoBitrate]; + } + + getRenditionBitrate() { + const currentBitrate = this.getDashBitrate("video"); + return currentBitrate?.bitrate; + } + + getRenditionName() { + let qlty = this.getDashBitrate("video"); + return qlty?.label; + } + + /** Override to return renidtion actual width (before re-scaling). */ + getRenditionWidth() { + //return this.player.getVideoElement().clientWidth; + return this.getDashBitrate("video")?.width; + } + + /** Override to return renidtion actual height (before re-scaling). */ + getRenditionHeight() { + //return this.player.getVideoElement().clientHeight; + return this.getDashBitrate("video")?.height; + } + + getPlayerVersion() { + return this.player.getVersion(); + } + + getPreload() { + /* Content Is Preloaded */ + return this.player.preload(); + } + + isMuted() { + /* Content Is Muted */ + return this.player.isMuted(); + } + + isAutoplayed() { + /* Content Is Autoplayed */ + return this.player.getAutoPlay(); + } + + isFullscreen() { + // dash js does not have a built-in method to check if the player is in fullscreen mode + // we can do by using jabvaSrcipt method: + // console.log("full screen", this._fullScreen); + } + + registerListeners() { + //nrvideo.Log.debugCommonVideoEvents(this.tag); + + nrvideo.Log.debugCommonVideoEvents(this.player, [ + null, + "streamInitialized", + "playbackMetaDataLoaded", + "playbackLoadedData", + "canPlay", + "playbackPlaying", + "playbackPaused", + "playbackSeeking", + "playbackSeeked", + "error", + "playbackEnded", + "bufferStalled", + "bufferLoaded", + "qualityChangeRendered", + ]); + + /* Stream Period is activate ON_READY Event */ + this.tag.on("streamInitialized", this.onReady.bind(this)); + + /* Playback meta data loaded Download Event */ + this.tag.on("playbackMetaDataLoaded", this.onDownload.bind(this)); + + /* Playback loaded data Download Event */ + this.tag.on("playbackLoadedData", this.onDownload.bind(this)); + + /* Playback can play Event CONTENT_REQUEST, CONTENT_START */ + this.tag.on("canPlay", this.onPlay.bind(this)); + + /* CONTENT_RESUME */ + this.tag.on("playbackPlaying", this.onPlaying.bind(this)); + + /* CONTENT_PAUSE */ + this.tag.on("playbackPaused", this.onPause.bind(this)); + + /* CONTENT_SEEK_START */ + this.tag.on("playbackSeeking", this.onSeeking.bind(this)); + + /* CONTENT_SEEK_END */ + this.tag.on("playbackSeeked", this.onSeeked.bind(this)); + + /* CONTENT_ERROR */ + this.tag.on("error", this.onError.bind(this)); + this.tag.on("playbackError", this.onError.bind(this)); + + /* CONTENT_END */ + this.tag.on("playbackEnded", this.onEnded.bind(this)); + + /* CONTENT_BUFFER_START */ + this.player.on("bufferStalled", this.onBufferingStalled.bind(this)); + + /* CONTENT_BUFFER_END */ + this.player.on("bufferLoaded", this.onBufferingLoaded.bind(this)); + + /* CONTENT_RENDITION_CHANGED */ + this.player.on("qualityChangeRendered", this.onAdaptation.bind(this)); + } + + unregisterListeners() { + this.tag.off("streamInitialized", this.onReady); + this.tag.off("playbackMetaDataLoaded", this.onDownload); + this.tag.off("playbackLoadedData", this.onDownload); + this.tag.off("canPlay", this.onPlay); + this.tag.off("playbackPlaying", this.onPlaying); + this.tag.off("playbackPaused", this.onPause); + this.tag.off("playbackSeeking", this.onSeeking); + this.tag.off("playbackSeeked", this.onSeeked); + this.tag.off("playbackError", this.onError); + this.tag.off("error", this.onError); + this.tag.off("playbackEnded", this.onEnded); + this.player.off("bufferStalled", this.onBufferingStalled); + this.player.off("bufferLoaded", this.onBufferingLoaded); + this.player.off("qualityChangeRendered", this.onAdaptation); + } + + onReady() { + this.sendPlayerReady(); + } + + onDownload(e) { + this.sendDownload({ state: e.type }); + } + + onPlay() { + this.sendRequest(); + } + + onPlaying() { + this.sendResume(); + this.sendStart(); + } + + onAdaptation(e) { + this.sendRenditionChanged(); + } + + onBufferingStalled() { + this.sendBufferStart(); + } + + onBufferingLoaded() { + this.sendBufferEnd(); + } + + onPause() { + this.sendPause(); + } + + onSeeking() { + this.sendSeekStart(); + } + + onSeeked() { + this.sendSeekEnd(); + } + + onError(e) { + this.sendError(e.detail); + } + + onEnded() { + this.sendEnd(); + } +} diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..595c7fb --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,45 @@ +var path = require("path"); +var webpack = require("webpack"); + +var pkg = require("./package.json"); +var license = + "@license " + + pkg.license + + "\n" + + pkg.name + + " " + + pkg.version + + "\nCopyright New Relic " + + "\n@author " + + pkg.author; + +module.exports = { + entry: "./src/index.js", + output: { + path: path.resolve(__dirname, "./dist"), + filename: pkg.name + ".min.js", + library: "nrvideo", + libraryTarget: "umd", + }, + devtool: "source-map", + module: { + rules: [ + { + test: /\.(?:js|mjs|cjs)$/, + exclude: /node_modules/, + use: { + loader: "babel-loader", + options: { + presets: [["@babel/preset-env", { targets: "defaults" }]], + }, + }, + }, + ], + }, + plugins: [ + new webpack.BannerPlugin({ + banner: license, + entryOnly: true, + }), + ], +}; From 50f19dbd1a3f5b9f206a7b0455353a59c390a1a1 Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Fri, 13 Sep 2024 10:38:45 +0530 Subject: [PATCH 2/8] NR-308701-Unit-Testing-Done --- .gitignore | 2 +- README.md | 2 - package.json | 2 +- samples/add/dash-add.html | 28 ------ samples/add/dash-add.js | 80 --------------- samples/dash-controlbar.html | 5 +- samples/{events.js => utils.js} | 0 src/__test__/index.test.js | 14 +++ src/__test__/tracker.test.js | 167 ++++++++++++++++++++++++-------- src/tracker.js | 19 ---- 10 files changed, 148 insertions(+), 171 deletions(-) delete mode 100644 samples/add/dash-add.html delete mode 100644 samples/add/dash-add.js rename samples/{events.js => utils.js} (100%) create mode 100644 src/__test__/index.test.js diff --git a/.gitignore b/.gitignore index d671809..222f575 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ coverage/ *.zip # logs -*.log \ No newline at end of file +*.log diff --git a/README.md b/README.md index a33f6eb..9eb4a9e 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,6 @@ Or if you need a production build: $ npm run build ``` -// export NODE_OPTIONS=--openssl-legacy-provider - ## Usage Load **scripts** inside `dist` folder into your page. diff --git a/package.json b/package.json index 5739fc3..1271907 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "New relic tracker for dash player", "main": "src/index.js", "scripts": { - "test": "jest", + "test": "jest --coverage", "build": "webpack -p", "build:dev": "webpack --mode development", "watch": "webpack -p --progress --color --watch", diff --git a/samples/add/dash-add.html b/samples/add/dash-add.html deleted file mode 100644 index fdbb691..0000000 --- a/samples/add/dash-add.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - Dash Ad Demo - - - - - - - -

Dash Player with Ad Demo

-
- - -
-
- - - - diff --git a/samples/add/dash-add.js b/samples/add/dash-add.js deleted file mode 100644 index 5015868..0000000 --- a/samples/add/dash-add.js +++ /dev/null @@ -1,80 +0,0 @@ -const myPlayer = document.querySelector("#myPlayer"); - -const player = new dashjs.MediaPlayer().create(); - -player.initialize( - myPlayer, - "http://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd", - true -); - -// set up the IMA SDK - -const adContainer = document.getElementById("ad-container"); - -//This class represents a container for displaying ads. -//The SDK will automatically create structures inside the containerElement parameter to house video and overlay ads. - -const adDisplayContainer = new google.ima.AdDisplayContainer(adContainer); -adDisplayContainer.initialize(); - -//AdsLoader allows clients to request ads from ad servers. -//To do so, users must register for the AdsManagerLoadedEvent event and then request ads. -const adsLoader = new google.ima.AdsLoader(adDisplayContainer); - -let adsManager; - -adsLoader.addEventListener( - google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, - onAdsManagerLoaded, - false -); - -//A class for specifying properties of the ad request. -let adsRequest = new google.ima.AdsRequest(); -adsRequest.adTagUrl = - "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator="; - -adsLoader.requestAds(adsRequest); - -function onAdsManagerLoaded(adsManagerLoadedEvent) { - adsManager = adsManagerLoadedEvent.getAdsManager(adContainer); - - adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); - adsManager.addEventListener( - google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, - onContentPauseRequested - ); - adsManager.addEventListener( - google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, - onContentResumeRequested - ); - - try { - adsManager.init(640, 360, google.ima.ViewMode.NORMAL); - adsManager.start(); - } catch (adError) { - console.log(adError); - } -} - -function onAdError(adErrorEvent) { - console.log(adErrorEvent.getError()); - if (adsManager) { - adsManager.destroy(); - } -} - -function onContentPauseRequested() { - player.pause(); -} - -function onContentResumeRequested() { - player.play(); -} - -const playButton = document.getElementById("play-button"); - -document.getElementById("play-button").addEventListener("click", () => { - console.log("clicked"); -}); diff --git a/samples/dash-controlbar.html b/samples/dash-controlbar.html index ca90968..5f995be 100644 --- a/samples/dash-controlbar.html +++ b/samples/dash-controlbar.html @@ -5,13 +5,14 @@ Dash js Video Player with quality selection - + - + + diff --git a/samples/events.js b/samples/utils.js similarity index 100% rename from samples/events.js rename to samples/utils.js diff --git a/src/__test__/index.test.js b/src/__test__/index.test.js new file mode 100644 index 0000000..fa86454 --- /dev/null +++ b/src/__test__/index.test.js @@ -0,0 +1,14 @@ +import * as nrvideo from "newrelic-video-core"; +import Tracker from "../tracker"; + +const exportedModule = require("../index"); + +describe("nrvideo DashTracker Assignment", () => { + it("should assign Tracker to nrvideo.DashTracker", () => { + expect(nrvideo.DashTracker).toBe(Tracker); + }); + + it("should export the modified nrvideo object", () => { + expect(exportedModule).toBe(nrvideo); + }); +}); diff --git a/src/__test__/tracker.test.js b/src/__test__/tracker.test.js index 1a56f1f..c12db6a 100644 --- a/src/__test__/tracker.test.js +++ b/src/__test__/tracker.test.js @@ -1,5 +1,5 @@ import DashTracker from "../tracker"; -import * as nrvideo from "newrelic-video-core"; +import { version } from "../../package.json"; const player = { addEventListener: jest.fn(), @@ -13,7 +13,6 @@ const player = { on: jest.fn(), getSource: jest.fn(), getCurrentTrackFor: jest.fn(), - version: "0.2.0", setPlayer: jest.fn(), }; @@ -60,16 +59,20 @@ const videoBitrateList = [ }, ]; -const tracker = new DashTracker(player, {}); +describe("Dash Tracker Attributes For Specified Event ", () => { + let tracker; + + beforeEach(() => { + tracker = new DashTracker(player, {}); + }); -describe("Dash Tracker name, version, src", () => { it("should return the tracker name as dash", () => { //assertion expect(tracker.getTrackerName()).toBe("dash"); }); - it("should return version 0.2.0", () => { - expect(tracker.getTrackerVersion()).toBe("0.2.0"); + it("should return pacjage version 0.2.0", () => { + expect(tracker.getTrackerVersion()).toBe(version); }); it("should return source of player", () => { @@ -77,9 +80,7 @@ describe("Dash Tracker name, version, src", () => { player.getSource = jest.fn().mockReturnValue(url); expect(tracker.getSrc()).toBe(url); }); -}); -describe("Dash Tracker Live Functionality", () => { it("isLive should return true if player is dynamic", () => { player.isDynamic = jest.fn().mockReturnValue(true); expect(tracker.isLive()).toBe(true); @@ -89,18 +90,14 @@ describe("Dash Tracker Live Functionality", () => { player.isDynamic = jest.fn().mockReturnValue(false); expect(tracker.isLive()).toBe(false); }); -}); -describe("setPlayer", () => { it("should call setPlayer method of VideoTracker", () => { const tag = " "; tracker.setPlayer = jest.fn(); tracker.setPlayer(player, tag); expect(tracker.setPlayer).toHaveBeenCalledWith(player, tag); }); -}); -describe("getDuration, playRate", () => { it("should return the duration of the player", () => { const mpd = 60; tracker.getDuration = player.duration.mockReturnValue(mpd); @@ -112,9 +109,39 @@ describe("getDuration, playRate", () => { tracker.getPlayrate = player.getPlaybackRate.mockReturnValue(rate); expect(tracker.getPlayrate()).toBe(rate); }); + + it("should return the mute status of the player", () => { + const isMutedValue = true; + tracker.player.isMuted = jest.fn().mockReturnValue(isMutedValue); + expect(tracker.isMuted()).toBe(isMutedValue); + }); + + it("should return the version of the player", () => { + const version = "1.0.0"; + tracker.player.getVersion = jest.fn().mockReturnValue(version); + expect(tracker.getPlayerVersion()).toBe(version); + }); + + it("should return the preload value of the player", () => { + const preloadValue = "auto"; + tracker.player.preload = jest.fn().mockReturnValue(preloadValue); + expect(tracker.getPreload()).toBe(preloadValue); + }); + + it("should return the autoplay value of the player", () => { + const autoplayValue = true; + tracker.player.getAutoPlay = jest.fn().mockReturnValue(autoplayValue); + expect(tracker.isAutoplayed()).toBe(autoplayValue); + }); }); describe("getTrack", () => { + let tracker; + + beforeEach(() => { + tracker = new DashTracker(player, {}); + }); + const audio = { lang: "en", }; @@ -131,7 +158,13 @@ describe("getTrack", () => { }); }); -describe("getDashBitrate", () => { +describe("Bitrate Properties for Dash.js", () => { + let tracker; + + beforeEach(() => { + tracker = new DashTracker(player, {}); + }); + it("should return the bitrate info for the specified media type", () => { const videoBitrate = 2; // Assuming videoBitrate is 2 for testing purposes const expectedBitrateInfo = { @@ -205,9 +238,42 @@ describe("getDashBitrate", () => { expect(result).toBe(currentBitrate.height); }); }); + + describe("getRenditionName", () => { + it("should return the label of the current video rendition", () => { + const currentBitrate = { + bitrate: 987654, + height: 360, + mediaType: "video", + qualityIndex: 2, + scanType: null, + width: 854, + label: "360p", + }; + tracker.getDashBitrate = jest.fn().mockReturnValue(currentBitrate); + + const result = tracker.getRenditionName(); + + expect(result).toBe(currentBitrate.label); + }); + + it("should return undefined if the current video rendition is not available", () => { + tracker.getDashBitrate = jest.fn().mockReturnValue(undefined); + + const result = tracker.getRenditionName(); + + expect(result).toBeUndefined(); + }); + }); }); describe("registerListeners", () => { + let tracker; + + beforeEach(() => { + tracker = new DashTracker(player, {}); + }); + it("should register event listeners for various video events", () => { const mockOnReady = jest.fn(); const mockOnDownload = jest.fn(); @@ -294,6 +360,12 @@ describe("registerListeners", () => { }); describe("unregisterListeners", () => { + let tracker; + + beforeEach(() => { + tracker = new DashTracker(player, {}); + }); + it("should unregister event listeners for various video events", () => { const mockOff = jest.fn(); @@ -348,36 +420,12 @@ describe("unregisterListeners", () => { tracker.onBufferingLoaded ); expect(tracker.player.off).toHaveBeenCalledWith( - "trackChangeRendered", + "qualityChangeRendered", tracker.onAdaptation ); }); }); -describe("getPlayerVersion", () => { - it("should return the version of the player", () => { - const version = "1.0.0"; - tracker.player.getVersion = jest.fn().mockReturnValue(version); - expect(tracker.getPlayerVersion()).toBe(version); - }); -}); - -describe("getPreload", () => { - it("should return the preload value of the player", () => { - const preloadValue = "auto"; - tracker.player.preload = jest.fn().mockReturnValue(preloadValue); - expect(tracker.getPreload()).toBe(preloadValue); - }); -}); - -describe("isAutoplayed", () => { - it("should return the autoplay value of the player", () => { - const autoplayValue = true; - tracker.player.getAutoPlay = jest.fn().mockReturnValue(autoplayValue); - expect(tracker.isAutoplayed()).toBe(autoplayValue); - }); -}); - describe("Tracker Event Handlers", () => { let tracker; beforeEach(() => { @@ -392,6 +440,13 @@ describe("Tracker Event Handlers", () => { tracker.sendResume = jest.fn(); tracker.sendStart = jest.fn(); tracker.sendRenditionChanged = jest.fn(); + tracker.sendBufferStart = jest.fn(); + tracker.sendBufferEnd = jest.fn(); + tracker.sendPause = jest.fn(); + tracker.sendSeekStart = jest.fn(); + tracker.sendSeekEnd = jest.fn(); + tracker.sendError = jest.fn(); + tracker.sendEnd = jest.fn(); }); it("should call sendPlayerReady on onReady", () => { @@ -423,4 +478,40 @@ describe("Tracker Event Handlers", () => { tracker.onAdaptation(event); expect(tracker.sendRenditionChanged).toHaveBeenCalled(); }); + + it("should call sendBufferStart on onBufferingStalled", () => { + tracker.onBufferingStalled(); + expect(tracker.sendBufferStart).toHaveBeenCalled(); + }); + + it("should call sendBufferEnd on onBufferingLoaded", () => { + tracker.onBufferingLoaded(); + expect(tracker.sendBufferEnd).toHaveBeenCalled(); + }); + + it("should call sendPause on onPause", () => { + tracker.onPause(); + expect(tracker.sendPause).toHaveBeenCalled(); + }); + + it("should call sendSeekStart on onSeeking", () => { + tracker.onSeeking(); + expect(tracker.sendSeekStart).toHaveBeenCalled(); + }); + + it("should call sendSeekEnd on onSeeked", () => { + tracker.onSeeked(); + expect(tracker.sendSeekEnd).toHaveBeenCalled(); + }); + + it("should call sendError on onError", () => { + const event = { detail: "error" }; + tracker.onError(event); + expect(tracker.sendError).toHaveBeenCalledWith(event.detail); + }); + + it("should call sendEnd on onEnded", () => { + tracker.onEnded(); + expect(tracker.sendEnd).toHaveBeenCalled(); + }); }); diff --git a/src/tracker.js b/src/tracker.js index a6d9035..c704f86 100644 --- a/src/tracker.js +++ b/src/tracker.js @@ -4,11 +4,6 @@ import { version } from "../package.json"; export default class DashTracker extends nrvideo.VideoTracker { constructor(player, options) { super(player, options); - - // console.log("player", this.player); - // player.on("manifestLoaded", (e) => { - // console.log("manifestLoaded", e.data); - // }); } setPlayer(player, tag) { @@ -24,12 +19,6 @@ export default class DashTracker extends nrvideo.VideoTracker { return version; } - getTitle() { - //https://github.com/Dash-Industry-Forum/dash.js/issues/2961 - // https://reference.dashif.org/dash.js/nightly/samples/getting-started/listening-to-events.html - /* Not has any method for getting title */ - } - isLive() { return this.player.isDynamic(); } @@ -112,15 +101,7 @@ export default class DashTracker extends nrvideo.VideoTracker { return this.player.getAutoPlay(); } - isFullscreen() { - // dash js does not have a built-in method to check if the player is in fullscreen mode - // we can do by using jabvaSrcipt method: - // console.log("full screen", this._fullScreen); - } - registerListeners() { - //nrvideo.Log.debugCommonVideoEvents(this.tag); - nrvideo.Log.debugCommonVideoEvents(this.player, [ null, "streamInitialized", From d544eae52ff1426e3f14ec8b3412d750c632c515 Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Fri, 13 Sep 2024 11:00:45 +0530 Subject: [PATCH 3/8] Tracker Changes implementation --- README.md | 3 +- package.json | 9 +- samples/agent.js | 3809 --------------------------------------- samples/dash-control.js | 27 +- 4 files changed, 18 insertions(+), 3830 deletions(-) delete mode 100644 samples/agent.js diff --git a/README.md b/README.md index 9eb4a9e..8c42252 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,6 @@ Load **scripts** inside `dist` folder into your page. ``` ```javascript -// var player = new shaka.Player(...) nrvideo.Core.addTracker(new nrvideo.DashTracker(player)); ``` @@ -49,7 +48,7 @@ We encourage you to bring your experiences and questions to the [Explorers Hub]( ## Contributing -We encourage your contributions to improve New Relic Shaka Tracker! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project. If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at opensource@newrelic.com. +We encourage your contributions to improve New Relic Dash Tracker! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project. If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at opensource@newrelic.com. **A note about vulnerabilities** diff --git a/package.json b/package.json index 1271907..3fe2497 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,13 @@ "main": "src/index.js", "scripts": { "test": "jest --coverage", - "build": "webpack -p", + "build": "webpack --mode -production", "build:dev": "webpack --mode development", - "watch": "webpack -p --progress --color --watch", + "watch": "webpack --progress --color --watch", "watch:dev": "webpack --progress --color --watch --mode development", "prezip": "npm run build", - "zip": "zip -P newrelic -x '*.DS_Store' -r shaka.zip dist samples README.md CHANGELOG.md EULA.md", - "clean": "rm -rf dist *.zip", - "deploy": "node scripts/deploy.js" + "zip": "zip -P newrelic -x '*.DS_Store' -r dash.zip dist samples README.md CHANGELOG.md EULA.md", + "clean": "rm -rf dist *.zip" }, "repository": { "type": "git", diff --git a/samples/agent.js b/samples/agent.js deleted file mode 100644 index 45db9e8..0000000 --- a/samples/agent.js +++ /dev/null @@ -1,3809 +0,0 @@ -window.NREUM || (NREUM = {}); -NREUM.init = { - distributed_tracing: { enabled: true }, - privacy: { cookies_enabled: true }, - ajax: { deny_list: ["bam.nr-data.net"] }, -}; - -NREUM.loader_config = { - accountID: "1", - trustKey: "1", - agentID: "601493331", - licenseKey: "NRBR-44eebc6b6eb7f9a60af", - applicationID: "601493331", -}; -NREUM.info = { - beacon: "bam.nr-data.net", - errorBeacon: "bam.nr-data.net", - licenseKey: "NRBR-44eebc6b6eb7f9a60af", - applicationID: "601493331", - sa: 1, -}; /*! For license information please see nr-loader-spa-1.264.0.min.js.LICENSE.txt */ -(() => { - var e, - t, - r = { - 2983: (e, t, r) => { - "use strict"; - r.d(t, { - D0: () => v, - gD: () => y, - Vp: () => s, - oC: () => x, - fr: () => _, - jD: () => P, - hR: () => A, - xN: () => b, - x1: () => c, - aN: () => T, - V: () => j, - }); - var n = r(384), - i = r(7864); - const o = { - beacon: n.NT.beacon, - errorBeacon: n.NT.errorBeacon, - licenseKey: void 0, - applicationID: void 0, - sa: void 0, - queueTime: void 0, - applicationTime: void 0, - ttGuid: void 0, - user: void 0, - account: void 0, - product: void 0, - extra: void 0, - jsAttributes: {}, - userAttributes: void 0, - atts: void 0, - transactionName: void 0, - tNamePlain: void 0, - }, - a = {}; - function s(e) { - if (!e) - throw new Error("All info objects require an agent identifier!"); - if (!a[e]) throw new Error("Info for ".concat(e, " was never set")); - return a[e]; - } - function c(e, t) { - if (!e) - throw new Error("All info objects require an agent identifier!"); - a[e] = (0, i.a)(t, o); - const r = (0, n.nY)(e); - r && (r.info = a[e]); - } - var u = r(993); - const d = (e) => { - if (!e || "string" != typeof e) return !1; - try { - document.createDocumentFragment().querySelector(e); - } catch { - return !1; - } - return !0; - }; - var l = r(2614), - f = r(944); - const h = "[data-nr-mask]", - g = () => { - const e = { - mask_selector: "*", - block_selector: "[data-nr-block]", - mask_input_options: { - color: !1, - date: !1, - "datetime-local": !1, - email: !1, - month: !1, - number: !1, - range: !1, - search: !1, - tel: !1, - text: !1, - time: !1, - url: !1, - week: !1, - textarea: !1, - select: !1, - password: !0, - }, - }; - return { - ajax: { - deny_list: void 0, - block_internal: !0, - enabled: !0, - harvestTimeSeconds: 10, - autoStart: !0, - }, - distributed_tracing: { - enabled: void 0, - exclude_newrelic_header: void 0, - cors_use_newrelic_header: void 0, - cors_use_tracecontext_headers: void 0, - allowed_origins: void 0, - }, - feature_flags: [], - generic_events: { - enabled: !0, - harvestTimeSeconds: 30, - autoStart: !0, - }, - harvest: { tooManyRequestsDelay: 60 }, - jserrors: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, - logging: { - enabled: !0, - harvestTimeSeconds: 10, - autoStart: !0, - level: u.p_.INFO, - }, - metrics: { enabled: !0, autoStart: !0 }, - obfuscate: void 0, - page_action: { enabled: !0 }, - page_view_event: { enabled: !0, autoStart: !0 }, - page_view_timing: { - enabled: !0, - harvestTimeSeconds: 30, - long_task: !1, - autoStart: !0, - }, - privacy: { cookies_enabled: !0 }, - proxy: { assets: void 0, beacon: void 0 }, - session: { expiresMs: l.wk, inactiveMs: l.BB }, - session_replay: { - autoStart: !0, - enabled: !1, - harvestTimeSeconds: 60, - preload: !1, - sampling_rate: 10, - error_sampling_rate: 100, - collect_fonts: !1, - inline_images: !1, - inline_stylesheet: !0, - fix_stylesheets: !0, - mask_all_inputs: !0, - get mask_text_selector() { - return e.mask_selector; - }, - set mask_text_selector(t) { - d(t) - ? (e.mask_selector = "".concat(t, ",").concat(h)) - : "" === t || null === t - ? (e.mask_selector = h) - : (0, f.R)(5, t); - }, - get block_class() { - return "nr-block"; - }, - get ignore_class() { - return "nr-ignore"; - }, - get mask_text_class() { - return "nr-mask"; - }, - get block_selector() { - return e.block_selector; - }, - set block_selector(t) { - d(t) - ? (e.block_selector += ",".concat(t)) - : "" !== t && (0, f.R)(6, t); - }, - get mask_input_options() { - return e.mask_input_options; - }, - set mask_input_options(t) { - t && "object" == typeof t - ? (e.mask_input_options = { ...t, password: !0 }) - : (0, f.R)(7, t); - }, - }, - session_trace: { - enabled: !0, - harvestTimeSeconds: 10, - autoStart: !0, - }, - soft_navigations: { - enabled: !0, - harvestTimeSeconds: 10, - autoStart: !0, - }, - spa: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, - ssl: void 0, - }; - }, - p = {}, - m = "All configuration objects require an agent identifier!"; - function v(e) { - if (!e) throw new Error(m); - if (!p[e]) - throw new Error("Configuration for ".concat(e, " was never set")); - return p[e]; - } - function b(e, t) { - if (!e) throw new Error(m); - p[e] = (0, i.a)(t, g()); - const r = (0, n.nY)(e); - r && (r.init = p[e]); - } - function y(e, t) { - if (!e) throw new Error(m); - var r = v(e); - if (r) { - for (var n = t.split("."), i = 0; i < n.length - 1; i++) - if ("object" != typeof (r = r[n[i]])) return; - r = r[n[n.length - 1]]; - } - return r; - } - const w = { - accountID: void 0, - trustKey: void 0, - agentID: void 0, - licenseKey: void 0, - applicationID: void 0, - xpid: void 0, - }, - R = {}; - function x(e) { - if (!e) - throw new Error( - "All loader-config objects require an agent identifier!" - ); - if (!R[e]) - throw new Error("LoaderConfig for ".concat(e, " was never set")); - return R[e]; - } - function T(e, t) { - if (!e) - throw new Error( - "All loader-config objects require an agent identifier!" - ); - R[e] = (0, i.a)(t, w); - const r = (0, n.nY)(e); - r && (r.loader_config = R[e]); - } - const A = (0, n.dV)().o; - var E = r(6154), - N = r(9324); - const S = { - buildEnv: N.F3, - distMethod: N.Xs, - version: N.xv, - originTime: E.WN, - }, - O = { - customTransaction: void 0, - disabled: !1, - isolatedBacklog: !1, - loaderType: void 0, - maxBytes: 3e4, - onerror: void 0, - origin: "" + E.gm.location, - ptid: void 0, - releaseIds: {}, - appMetadata: {}, - session: void 0, - denyList: void 0, - harvestCount: 0, - timeKeeper: void 0, - }, - I = {}; - function _(e) { - if (!e) - throw new Error("All runtime objects require an agent identifier!"); - if (!I[e]) - throw new Error("Runtime for ".concat(e, " was never set")); - return I[e]; - } - function j(e, t) { - if (!e) - throw new Error("All runtime objects require an agent identifier!"); - I[e] = { ...(0, i.a)(t, O), ...S }; - const r = (0, n.nY)(e); - r && (r.runtime = I[e]); - } - function P(e) { - return (function (e) { - try { - const t = s(e); - return !!t.licenseKey && !!t.errorBeacon && !!t.applicationID; - } catch (e) { - return !1; - } - })(e); - } - }, - 7864: (e, t, r) => { - "use strict"; - r.d(t, { a: () => i }); - var n = r(944); - function i(e, t) { - try { - if (!e || "object" != typeof e) return (0, n.R)(3); - if (!t || "object" != typeof t) return (0, n.R)(4); - const r = Object.create( - Object.getPrototypeOf(t), - Object.getOwnPropertyDescriptors(t) - ), - o = 0 === Object.keys(r).length ? e : r; - for (let a in o) - if (void 0 !== e[a]) - try { - if (null === e[a]) { - r[a] = null; - continue; - } - Array.isArray(e[a]) && Array.isArray(t[a]) - ? (r[a] = Array.from(new Set([...e[a], ...t[a]]))) - : "object" == typeof e[a] && "object" == typeof t[a] - ? (r[a] = i(e[a], t[a])) - : (r[a] = e[a]); - } catch (e) { - (0, n.R)(1, e); - } - return r; - } catch (e) { - (0, n.R)(2, e); - } - } - }, - 9324: (e, t, r) => { - "use strict"; - r.d(t, { F3: () => i, Xs: () => o, Yq: () => a, xv: () => n }); - const n = "1.264.0", - i = "PROD", - o = "CDN", - a = "2.0.0-alpha.12"; - }, - 6154: (e, t, r) => { - "use strict"; - r.d(t, { - A4: () => s, - OF: () => d, - RI: () => i, - Vr: () => h, - WN: () => g, - bv: () => o, - gm: () => a, - lR: () => f, - m: () => u, - mw: () => c, - sb: () => l, - }); - var n = r(1863); - const i = "undefined" != typeof window && !!window.document, - o = - "undefined" != typeof WorkerGlobalScope && - (("undefined" != typeof self && - self instanceof WorkerGlobalScope && - self.navigator instanceof WorkerNavigator) || - ("undefined" != typeof globalThis && - globalThis instanceof WorkerGlobalScope && - globalThis.navigator instanceof WorkerNavigator)), - a = i - ? window - : "undefined" != typeof WorkerGlobalScope && - (("undefined" != typeof self && - self instanceof WorkerGlobalScope && - self) || - ("undefined" != typeof globalThis && - globalThis instanceof WorkerGlobalScope && - globalThis)), - s = "complete" === a?.document?.readyState, - c = Boolean("hidden" === a?.document?.visibilityState), - u = "" + a?.location, - d = /iPad|iPhone|iPod/.test(a.navigator?.userAgent), - l = d && "undefined" == typeof SharedWorker, - f = (() => { - const e = a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/); - return Array.isArray(e) && e.length >= 2 ? +e[1] : 0; - })(), - h = !!a.navigator?.sendBeacon, - g = Date.now() - (0, n.t)(); - }, - 4777: (e, t, r) => { - "use strict"; - r.d(t, { J: () => o }); - var n = r(944); - const i = { agentIdentifier: "", ee: void 0 }; - class o { - constructor(e) { - try { - if ("object" != typeof e) return (0, n.R)(8); - (this.sharedContext = {}), - Object.assign(this.sharedContext, i), - Object.entries(e).forEach((e) => { - let [t, r] = e; - Object.keys(i).includes(t) && (this.sharedContext[t] = r); - }); - } catch (e) { - (0, n.R)(9, e); - } - } - } - }, - 7295: (e, t, r) => { - "use strict"; - r.d(t, { Xv: () => a, gX: () => i, iW: () => o }); - var n = []; - function i(e) { - if (!e || o(e)) return !1; - if (0 === n.length) return !0; - for (var t = 0; t < n.length; t++) { - var r = n[t]; - if ("*" === r.hostname) return !1; - if (s(r.hostname, e.hostname) && c(r.pathname, e.pathname)) - return !1; - } - return !0; - } - function o(e) { - return void 0 === e.hostname; - } - function a(e) { - if (((n = []), e && e.length)) - for (var t = 0; t < e.length; t++) { - let r = e[t]; - if (!r) continue; - 0 === r.indexOf("http://") - ? (r = r.substring(7)) - : 0 === r.indexOf("https://") && (r = r.substring(8)); - const i = r.indexOf("/"); - let o, a; - i > 0 - ? ((o = r.substring(0, i)), (a = r.substring(i))) - : ((o = r), (a = "")); - let [s] = o.split(":"); - n.push({ hostname: s, pathname: a }); - } - } - function s(e, t) { - return !(e.length > t.length) && t.indexOf(e) === t.length - e.length; - } - function c(e, t) { - return ( - 0 === e.indexOf("/") && (e = e.substring(1)), - 0 === t.indexOf("/") && (t = t.substring(1)), - "" === e || e === t - ); - } - }, - 1687: (e, t, r) => { - "use strict"; - r.d(t, { Ak: () => s, Ze: () => d, x3: () => c }); - var n = r(7836), - i = r(3606), - o = r(860); - const a = {}; - function s(e, t) { - const r = { staged: !1, priority: o.P[t] || 0 }; - u(e), a[e].get(t) || a[e].set(t, r); - } - function c(e, t) { - e && - a[e] && - (a[e].get(t) && a[e].delete(t), f(e, t, !1), a[e].size && l(e)); - } - function u(e) { - if (!e) throw new Error("agentIdentifier required"); - a[e] || (a[e] = new Map()); - } - function d() { - let e = - arguments.length > 0 && void 0 !== arguments[0] - ? arguments[0] - : "", - t = - arguments.length > 1 && void 0 !== arguments[1] - ? arguments[1] - : "feature", - r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; - if ((u(e), !e || !a[e].get(t) || r)) return f(e, t); - (a[e].get(t).staged = !0), l(e); - } - function l(e) { - const t = Array.from(a[e]); - t.every((e) => { - let [t, r] = e; - return r.staged; - }) && - (t.sort((e, t) => e[1].priority - t[1].priority), - t.forEach((t) => { - let [r] = t; - a[e].delete(r), f(e, r); - })); - } - function f(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - const o = e ? n.ee.get(e) : n.ee, - a = i.i.handlers; - if (!o.aborted && o.backlog && a) { - if (r) { - const e = o.backlog[t], - r = a[t]; - if (r) { - for (let t = 0; e && t < e.length; ++t) h(e[t], r); - Object.entries(r).forEach((e) => { - let [t, r] = e; - Object.values(r || {}).forEach((e) => { - e[0].on(t, e[1]); - }); - }); - } - } - o.isolatedBacklog || delete a[t], - (o.backlog[t] = null), - o.emit("drain-" + t, []); - } - } - function h(e, t) { - var r = e[1]; - Object.values(t[r] || {}).forEach((t) => { - var r = e[0]; - if (t[0] === r) { - var n = t[1], - i = e[3], - o = e[2]; - n.apply(i, o); - } - }); - } - }, - 7836: (e, t, r) => { - "use strict"; - r.d(t, { P: () => c, ee: () => u }); - var n = r(384), - i = r(8990), - o = r(2983), - a = r(2646), - s = r(5607); - const c = "nr@context:".concat(s.W), - u = (function e(t, r) { - var n = {}, - s = {}, - d = {}, - l = !1; - try { - l = 16 === r.length && (0, o.fr)(r).isolatedBacklog; - } catch (e) {} - var f = { - on: g, - addEventListener: g, - removeEventListener: function (e, t) { - var r = n[e]; - if (!r) return; - for (var i = 0; i < r.length; i++) r[i] === t && r.splice(i, 1); - }, - emit: function (e, r, n, i, o) { - !1 !== o && (o = !0); - if (u.aborted && !i) return; - t && o && t.emit(e, r, n); - for (var a = h(n), c = p(e), d = c.length, l = 0; l < d; l++) - c[l].apply(a, r); - var g = v()[s[e]]; - g && g.push([f, e, r, a]); - return a; - }, - get: m, - listeners: p, - context: h, - buffer: function (e, t) { - const r = v(); - if (((t = t || "feature"), f.aborted)) return; - Object.entries(e || {}).forEach((e) => { - let [n, i] = e; - (s[i] = t), t in r || (r[t] = []); - }); - }, - abort: function () { - (f._aborted = !0), - Object.keys(f.backlog).forEach((e) => { - delete f.backlog[e]; - }); - }, - isBuffering: function (e) { - return !!v()[s[e]]; - }, - debugId: r, - backlog: l - ? {} - : t && "object" == typeof t.backlog - ? t.backlog - : {}, - isolatedBacklog: l, - }; - return ( - Object.defineProperty(f, "aborted", { - get: () => { - let e = f._aborted || !1; - return e || (t && (e = t.aborted), e); - }, - }), - f - ); - function h(e) { - return e && e instanceof a.y - ? e - : e - ? (0, i.I)(e, c, () => new a.y(c)) - : new a.y(c); - } - function g(e, t) { - n[e] = p(e).concat(t); - } - function p(e) { - return n[e] || []; - } - function m(t) { - return (d[t] = d[t] || e(f, t)); - } - function v() { - return f.backlog; - } - })(void 0, "globalEE"), - d = (0, n.Zm)(); - d.ee || (d.ee = u); - }, - 2646: (e, t, r) => { - "use strict"; - r.d(t, { y: () => n }); - class n { - constructor(e) { - this.contextId = e; - } - } - }, - 9908: (e, t, r) => { - "use strict"; - r.d(t, { d: () => n, p: () => i }); - var n = r(7836).ee.get("handle"); - function i(e, t, r, i, o) { - o - ? (o.buffer([e], i), o.emit(e, t, r)) - : (n.buffer([e], i), n.emit(e, t, r)); - } - }, - 3606: (e, t, r) => { - "use strict"; - r.d(t, { i: () => o }); - var n = r(9908); - o.on = a; - var i = (o.handlers = {}); - function o(e, t, r, o) { - a(o || n.d, i, e, t, r); - } - function a(e, t, r, i, o) { - o || (o = "feature"), e || (e = n.d); - var a = (t[o] = t[o] || {}); - (a[r] = a[r] || []).push([e, i]); - } - }, - 3878: (e, t, r) => { - "use strict"; - r.d(t, { DD: () => c, jT: () => a, sp: () => s }); - var n = r(6154); - let i = !1, - o = !1; - try { - const e = { - get passive() { - return (i = !0), !1; - }, - get signal() { - return (o = !0), !1; - }, - }; - n.gm.addEventListener("test", null, e), - n.gm.removeEventListener("test", null, e); - } catch (e) {} - function a(e, t) { - return i || o ? { capture: !!e, passive: i, signal: t } : !!e; - } - function s(e, t) { - let r = - arguments.length > 2 && void 0 !== arguments[2] && arguments[2], - n = arguments.length > 3 ? arguments[3] : void 0; - window.addEventListener(e, t, a(r, n)); - } - function c(e, t) { - let r = - arguments.length > 2 && void 0 !== arguments[2] && arguments[2], - n = arguments.length > 3 ? arguments[3] : void 0; - document.addEventListener(e, t, a(r, n)); - } - }, - 5607: (e, t, r) => { - "use strict"; - r.d(t, { W: () => n }); - const n = (0, r(9566).bz)(); - }, - 9566: (e, t, r) => { - "use strict"; - r.d(t, { LA: () => s, ZF: () => c, bz: () => a, el: () => u }); - var n = r(6154); - const i = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"; - function o(e, t) { - return e ? 15 & e[t] : (16 * Math.random()) | 0; - } - function a() { - const e = n.gm?.crypto || n.gm?.msCrypto; - let t, - r = 0; - return ( - e && - e.getRandomValues && - (t = e.getRandomValues(new Uint8Array(30))), - i - .split("") - .map((e) => - "x" === e - ? o(t, r++).toString(16) - : "y" === e - ? ((3 & o()) | 8).toString(16) - : e - ) - .join("") - ); - } - function s(e) { - const t = n.gm?.crypto || n.gm?.msCrypto; - let r, - i = 0; - t && t.getRandomValues && (r = t.getRandomValues(new Uint8Array(e))); - const a = []; - for (var s = 0; s < e; s++) a.push(o(r, i++).toString(16)); - return a.join(""); - } - function c() { - return s(16); - } - function u() { - return s(32); - } - }, - 2614: (e, t, r) => { - "use strict"; - r.d(t, { - BB: () => a, - H3: () => n, - g: () => u, - iL: () => c, - tS: () => s, - uh: () => i, - wk: () => o, - }); - const n = "NRBA", - i = "SESSION", - o = 144e5, - a = 18e5, - s = { - STARTED: "session-started", - PAUSE: "session-pause", - RESET: "session-reset", - RESUME: "session-resume", - UPDATE: "session-update", - }, - c = { SAME_TAB: "same-tab", CROSS_TAB: "cross-tab" }, - u = { OFF: 0, FULL: 1, ERROR: 2 }; - }, - 1863: (e, t, r) => { - "use strict"; - function n() { - return Math.floor(performance.now()); - } - r.d(t, { t: () => n }); - }, - 7485: (e, t, r) => { - "use strict"; - r.d(t, { D: () => i }); - var n = r(6154); - function i(e) { - if (0 === (e || "").indexOf("data:")) return { protocol: "data" }; - try { - const t = new URL(e, location.href), - r = { - port: t.port, - hostname: t.hostname, - pathname: t.pathname, - search: t.search, - protocol: t.protocol.slice(0, t.protocol.indexOf(":")), - sameOrigin: - t.protocol === n.gm?.location?.protocol && - t.host === n.gm?.location?.host, - }; - return ( - (r.port && "" !== r.port) || - ("http:" === t.protocol && (r.port = "80"), - "https:" === t.protocol && (r.port = "443")), - r.pathname && "" !== r.pathname - ? r.pathname.startsWith("/") || - (r.pathname = "/".concat(r.pathname)) - : (r.pathname = "/"), - r - ); - } catch (e) { - return {}; - } - } - }, - 944: (e, t, r) => { - "use strict"; - function n(e, t) { - "function" == typeof console.debug && - console.debug( - "New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat( - e - ), - t - ); - } - r.d(t, { R: () => n }); - }, - 5284: (e, t, r) => { - "use strict"; - r.d(t, { t: () => c, B: () => s }); - var n = r(7836), - i = r(6154); - const o = "newrelic"; - const a = new Set(), - s = {}; - function c(e, t) { - const r = n.ee.get(t); - (s[t] ??= {}), - e && - "object" == typeof e && - (a.has(t) || - (r.emit("rumresp", [e]), - (s[t] = e), - a.add(t), - (function () { - let e = - arguments.length > 0 && void 0 !== arguments[0] - ? arguments[0] - : {}; - try { - i.gm.dispatchEvent(new CustomEvent(o, { detail: e })); - } catch (e) {} - })({ loaded: !0 }))); - } - }, - 8990: (e, t, r) => { - "use strict"; - r.d(t, { I: () => i }); - var n = Object.prototype.hasOwnProperty; - function i(e, t, r) { - if (n.call(e, t)) return e[t]; - var i = r(); - if (Object.defineProperty && Object.keys) - try { - return ( - Object.defineProperty(e, t, { - value: i, - writable: !0, - enumerable: !1, - }), - i - ); - } catch (e) {} - return (e[t] = i), i; - } - }, - 6389: (e, t, r) => { - "use strict"; - function n(e) { - var t = this; - let r = - arguments.length > 1 && void 0 !== arguments[1] - ? arguments[1] - : 500, - n = - arguments.length > 2 && void 0 !== arguments[2] - ? arguments[2] - : {}; - const i = n?.leading || !1; - let o; - return function () { - for (var n = arguments.length, a = new Array(n), s = 0; s < n; s++) - a[s] = arguments[s]; - i && - void 0 === o && - (e.apply(t, a), - (o = setTimeout(() => { - o = clearTimeout(o); - }, r))), - i || - (clearTimeout(o), - (o = setTimeout(() => { - e.apply(t, a); - }, r))); - }; - } - function i(e) { - var t = this; - let r = !1; - return function () { - if (!r) { - r = !0; - for ( - var n = arguments.length, i = new Array(n), o = 0; - o < n; - o++ - ) - i[o] = arguments[o]; - e.apply(t, i); - } - }; - } - r.d(t, { J: () => i, s: () => n }); - }, - 3304: (e, t, r) => { - "use strict"; - r.d(t, { A: () => o }); - var n = r(7836); - const i = () => { - const e = new WeakSet(); - return (t, r) => { - if ("object" == typeof r && null !== r) { - if (e.has(r)) return; - e.add(r); - } - return r; - }; - }; - function o(e) { - try { - return JSON.stringify(e, i()); - } catch (e) { - try { - n.ee.emit("internal-error", [e]); - } catch (e) {} - } - } - }, - 5289: (e, t, r) => { - "use strict"; - r.d(t, { GG: () => o, sB: () => a }); - var n = r(3878); - function i() { - return ( - "undefined" == typeof document || "complete" === document.readyState - ); - } - function o(e, t) { - if (i()) return e(); - (0, n.sp)("load", e, t); - } - function a(e) { - if (i()) return e(); - (0, n.DD)("DOMContentLoaded", e); - } - }, - 384: (e, t, r) => { - "use strict"; - r.d(t, { - NT: () => o, - US: () => d, - Zm: () => a, - bQ: () => c, - dV: () => s, - nY: () => u, - pV: () => l, - }); - var n = r(6154), - i = r(1863); - const o = { beacon: "bam.nr-data.net", errorBeacon: "bam.nr-data.net" }; - function a() { - return ( - n.gm.NREUM || (n.gm.NREUM = {}), - void 0 === n.gm.newrelic && (n.gm.newrelic = n.gm.NREUM), - n.gm.NREUM - ); - } - function s() { - let e = a(); - return ( - e.o || - (e.o = { - ST: n.gm.setTimeout, - SI: n.gm.setImmediate, - CT: n.gm.clearTimeout, - XHR: n.gm.XMLHttpRequest, - REQ: n.gm.Request, - EV: n.gm.Event, - PR: n.gm.Promise, - MO: n.gm.MutationObserver, - FETCH: n.gm.fetch, - }), - e - ); - } - function c(e, t) { - let r = a(); - (r.initializedAgents ??= {}), - (t.initializedAt = { ms: (0, i.t)(), date: new Date() }), - (r.initializedAgents[e] = t); - } - function u(e) { - let t = a(); - return t.initializedAgents?.[e]; - } - function d(e, t) { - a()[e] = t; - } - function l() { - return ( - (function () { - let e = a(); - const t = e.info || {}; - e.info = { beacon: o.beacon, errorBeacon: o.errorBeacon, ...t }; - })(), - (function () { - let e = a(); - const t = e.init || {}; - e.init = { ...t }; - })(), - s(), - (function () { - let e = a(); - const t = e.loader_config || {}; - e.loader_config = { ...t }; - })(), - a() - ); - } - }, - 2843: (e, t, r) => { - "use strict"; - r.d(t, { u: () => i }); - var n = r(3878); - function i(e) { - let t = - arguments.length > 1 && void 0 !== arguments[1] && arguments[1], - r = arguments.length > 2 ? arguments[2] : void 0, - i = arguments.length > 3 ? arguments[3] : void 0; - (0, n.DD)( - "visibilitychange", - function () { - if (t) return void ("hidden" === document.visibilityState && e()); - e(document.visibilityState); - }, - r, - i - ); - } - }, - 8941: (e, t, r) => { - "use strict"; - r.d(t, { - um: () => f, - NZ: () => R, - vC: () => A, - Ri: () => O, - Ak: () => _, - o8: () => P, - MO: () => U, - bX: () => F, - }); - var n = r(7836), - i = r(3434), - o = r(8990), - a = r(6154); - const s = {}, - c = a.gm.XMLHttpRequest, - u = "addEventListener", - d = "removeEventListener", - l = "nr@wrapped:".concat(n.P); - function f(e) { - var t = (function (e) { - return (e || n.ee).get("events"); - })(e); - if (s[t.debugId]++) return t; - s[t.debugId] = 1; - var r = (0, i.YM)(t, !0); - function f(e) { - r.inPlace(e, [u, d], "-", g); - } - function g(e, t) { - return e[1]; - } - return ( - "getPrototypeOf" in Object && - (a.RI && h(document, f), h(a.gm, f), h(c.prototype, f)), - t.on(u + "-start", function (e, t) { - var n = e[1]; - if ( - null !== n && - ("function" == typeof n || "object" == typeof n) - ) { - var i = (0, o.I)(n, l, function () { - var e = { - object: function () { - if ("function" != typeof n.handleEvent) return; - return n.handleEvent.apply(n, arguments); - }, - function: n, - }[typeof n]; - return e ? r(e, "fn-", null, e.name || "anonymous") : n; - }); - this.wrapped = e[1] = i; - } - }), - t.on(d + "-start", function (e) { - e[1] = this.wrapped || e[1]; - }), - t - ); - } - function h(e, t) { - let r = e; - for ( - ; - "object" == typeof r && !Object.prototype.hasOwnProperty.call(r, u); - - ) - r = Object.getPrototypeOf(r); - for ( - var n = arguments.length, i = new Array(n > 2 ? n - 2 : 0), o = 2; - o < n; - o++ - ) - i[o - 2] = arguments[o]; - r && t(r, ...i); - } - var g = "fetch-", - p = g + "body-", - m = ["arrayBuffer", "blob", "json", "text", "formData"], - v = a.gm.Request, - b = a.gm.Response, - y = "prototype"; - const w = {}; - function R(e) { - const t = (function (e) { - return (e || n.ee).get("fetch"); - })(e); - if (!(v && b && a.gm.fetch)) return t; - if (w[t.debugId]++) return t; - function r(e, r, i) { - var o = e[r]; - "function" == typeof o && - (e[r] = function () { - var e, - r = [...arguments], - a = {}; - t.emit(i + "before-start", [r], a), - a[n.P] && a[n.P].dt && (e = a[n.P].dt); - var s = o.apply(this, r); - return ( - t.emit(i + "start", [r, e], s), - s.then( - function (e) { - return t.emit(i + "end", [null, e], s), e; - }, - function (e) { - throw (t.emit(i + "end", [e], s), e); - } - ) - ); - }); - } - return ( - (w[t.debugId] = 1), - m.forEach((e) => { - r(v[y], e, p), r(b[y], e, p); - }), - r(a.gm, "fetch", g), - t.on(g + "end", function (e, r) { - var n = this; - if (r) { - var i = r.headers.get("content-length"); - null !== i && (n.rxSize = i), t.emit(g + "done", [null, r], n); - } else t.emit(g + "done", [e], n); - }), - t - ); - } - const x = {}, - T = ["pushState", "replaceState"]; - function A(e) { - const t = (function (e) { - return (e || n.ee).get("history"); - })(e); - return ( - !a.RI || - x[t.debugId]++ || - ((x[t.debugId] = 1), - (0, i.YM)(t).inPlace(window.history, T, "-")), - t - ); - } - var E = r(3878); - const N = {}, - S = ["appendChild", "insertBefore", "replaceChild"]; - function O(e) { - const t = (function (e) { - return (e || n.ee).get("jsonp"); - })(e); - if (!a.RI || N[t.debugId]) return t; - N[t.debugId] = !0; - var r = (0, i.YM)(t), - o = /[?&](?:callback|cb)=([^&#]+)/, - s = /(.*)\.([^.]+)/, - c = /^(\w+)(\.|$)(.*)$/; - function u(e, t) { - if (!e) return t; - const r = e.match(c), - n = r[1]; - return u(r[3], t[n]); - } - return ( - r.inPlace(Node.prototype, S, "dom-"), - t.on("dom-start", function (e) { - !(function (e) { - if ( - !e || - "string" != typeof e.nodeName || - "script" !== e.nodeName.toLowerCase() - ) - return; - if ("function" != typeof e.addEventListener) return; - var n = ((i = e.src), (a = i.match(o)), a ? a[1] : null); - var i, a; - if (!n) return; - var c = (function (e) { - var t = e.match(s); - if (t && t.length >= 3) - return { key: t[2], parent: u(t[1], window) }; - return { key: e, parent: window }; - })(n); - if ("function" != typeof c.parent[c.key]) return; - var d = {}; - function l() { - t.emit("jsonp-end", [], d), - e.removeEventListener("load", l, (0, E.jT)(!1)), - e.removeEventListener("error", f, (0, E.jT)(!1)); - } - function f() { - t.emit("jsonp-error", [], d), - t.emit("jsonp-end", [], d), - e.removeEventListener("load", l, (0, E.jT)(!1)), - e.removeEventListener("error", f, (0, E.jT)(!1)); - } - r.inPlace(c.parent, [c.key], "cb-", d), - e.addEventListener("load", l, (0, E.jT)(!1)), - e.addEventListener("error", f, (0, E.jT)(!1)), - t.emit("new-jsonp", [e.src], d); - })(e[0]); - }), - t - ); - } - const I = {}; - function _(e) { - const t = (function (e) { - return (e || n.ee).get("mutation"); - })(e); - if (!a.RI || I[t.debugId]) return t; - I[t.debugId] = !0; - var r = (0, i.YM)(t), - o = a.gm.MutationObserver; - return ( - o && - ((window.MutationObserver = function (e) { - return this instanceof o - ? new o(r(e, "fn-")) - : o.apply(this, arguments); - }), - (MutationObserver.prototype = o.prototype)), - t - ); - } - const j = {}; - function P(e) { - const t = (function (e) { - return (e || n.ee).get("promise"); - })(e); - if (j[t.debugId]) return t; - j[t.debugId] = !0; - var r = t.context, - o = (0, i.YM)(t), - s = a.gm.Promise; - return ( - s && - (function () { - function e(r) { - var n = t.context(), - i = o(r, "executor-", n, null, !1); - const a = Reflect.construct(s, [i], e); - return ( - (t.context(a).getCtx = function () { - return n; - }), - a - ); - } - (a.gm.Promise = e), - Object.defineProperty(e, "name", { value: "Promise" }), - (e.toString = function () { - return s.toString(); - }), - Object.setPrototypeOf(e, s), - ["all", "race"].forEach(function (r) { - const n = s[r]; - e[r] = function (e) { - let i = !1; - [...(e || [])].forEach((e) => { - this.resolve(e).then(a("all" === r), a(!1)); - }); - const o = n.apply(this, arguments); - return o; - function a(e) { - return function () { - t.emit("propagate", [null, !i], o, !1, !1), - (i = i || !e); - }; - } - }; - }), - ["resolve", "reject"].forEach(function (r) { - const n = s[r]; - e[r] = function (e) { - const r = n.apply(this, arguments); - return ( - e !== r && t.emit("propagate", [e, !0], r, !1, !1), r - ); - }; - }), - (e.prototype = s.prototype); - const n = s.prototype.then; - (s.prototype.then = function () { - var e = this, - i = r(e); - i.promise = e; - for ( - var a = arguments.length, s = new Array(a), c = 0; - c < a; - c++ - ) - s[c] = arguments[c]; - (s[0] = o(s[0], "cb-", i, null, !1)), - (s[1] = o(s[1], "cb-", i, null, !1)); - const u = n.apply(this, s); - return ( - (i.nextPromise = u), - t.emit("propagate", [e, !0], u, !1, !1), - u - ); - }), - (s.prototype.then[i.Jt] = n), - t.on("executor-start", function (e) { - (e[0] = o(e[0], "resolve-", this, null, !1)), - (e[1] = o(e[1], "resolve-", this, null, !1)); - }), - t.on("executor-err", function (e, t, r) { - e[1](r); - }), - t.on("cb-end", function (e, r, n) { - t.emit("propagate", [n, !0], this.nextPromise, !1, !1); - }), - t.on("propagate", function (e, r, n) { - (this.getCtx && !r) || - (this.getCtx = function () { - if (e instanceof Promise) var r = t.context(e); - return r && r.getCtx ? r.getCtx() : this; - }); - }); - })(), - t - ); - } - const C = {}, - k = "setTimeout", - L = "setInterval", - D = "clearTimeout", - H = "-start", - M = "-", - K = [k, "setImmediate", L, D, "clearImmediate"]; - function U(e) { - const t = (function (e) { - return (e || n.ee).get("timer"); - })(e); - if (C[t.debugId]++) return t; - C[t.debugId] = 1; - var r = (0, i.YM)(t); - return ( - r.inPlace(a.gm, K.slice(0, 2), k + M), - r.inPlace(a.gm, K.slice(2, 3), L + M), - r.inPlace(a.gm, K.slice(3), D + M), - t.on(L + H, function (e, t, n) { - e[0] = r(e[0], "fn-", null, n); - }), - t.on(k + H, function (e, t, n) { - (this.method = n), - (this.timerDuration = isNaN(e[1]) ? 0 : +e[1]), - (e[0] = r(e[0], "fn-", this, n)); - }), - t - ); - } - var G = r(944); - const B = {}, - V = ["open", "send"]; - function F(e) { - var t = e || n.ee; - const r = (function (e) { - return (e || n.ee).get("xhr"); - })(t); - if (B[r.debugId]++) return r; - (B[r.debugId] = 1), f(t); - var o = (0, i.YM)(r), - s = a.gm.XMLHttpRequest, - c = a.gm.MutationObserver, - u = a.gm.Promise, - d = a.gm.setInterval, - l = "readystatechange", - h = [ - "onload", - "onerror", - "onabort", - "onloadstart", - "onloadend", - "onprogress", - "ontimeout", - ], - g = [], - p = (a.gm.XMLHttpRequest = function (e) { - const t = new s(e), - n = r.context(t); - try { - r.emit("new-xhr", [t], n), - t.addEventListener( - l, - ((i = n), - function () { - var e = this; - e.readyState > 3 && - !i.resolved && - ((i.resolved = !0), r.emit("xhr-resolved", [], e)), - o.inPlace(e, h, "fn-", R); - }), - (0, E.jT)(!1) - ); - } catch (e) { - (0, G.R)(15, e); - try { - r.emit("internal-error", [e]); - } catch (e) {} - } - var i; - return t; - }); - function m(e, t) { - o.inPlace(t, ["onreadystatechange"], "fn-", R); - } - if ( - ((function (e, t) { - for (var r in e) t[r] = e[r]; - })(s, p), - (p.prototype = s.prototype), - o.inPlace(p.prototype, V, "-xhr-", R), - r.on("send-xhr-start", function (e, t) { - m(e, t), - (function (e) { - g.push(e), - c && (v ? v.then(w) : d ? d(w) : ((b = -b), (y.data = b))); - })(t); - }), - r.on("open-xhr-start", m), - c) - ) { - var v = u && u.resolve(); - if (!d && !u) { - var b = 1, - y = document.createTextNode(b); - new c(w).observe(y, { characterData: !0 }); - } - } else - t.on("fn-end", function (e) { - (e[0] && e[0].type === l) || w(); - }); - function w() { - for (var e = 0; e < g.length; e++) m(0, g[e]); - g.length && (g = []); - } - function R(e, t) { - return t; - } - return r; - } - }, - 3434: (e, t, r) => { - "use strict"; - r.d(t, { Jt: () => o, YM: () => c }); - var n = r(7836), - i = r(5607); - const o = "nr@original:".concat(i.W); - var a = Object.prototype.hasOwnProperty, - s = !1; - function c(e, t) { - return ( - e || (e = n.ee), - (r.inPlace = function (e, t, n, i, o) { - n || (n = ""); - const a = "-" === n.charAt(0); - for (let s = 0; s < t.length; s++) { - const c = t[s], - u = e[c]; - d(u) || (e[c] = r(u, a ? c + n : n, i, c, o)); - } - }), - (r.flag = o), - r - ); - function r(t, r, n, s, c) { - return d(t) - ? t - : (r || (r = ""), - (nrWrapper[o] = t), - (function (e, t, r) { - if (Object.defineProperty && Object.keys) - try { - return ( - Object.keys(e).forEach(function (r) { - Object.defineProperty(t, r, { - get: function () { - return e[r]; - }, - set: function (t) { - return (e[r] = t), t; - }, - }); - }), - t - ); - } catch (e) { - u([e], r); - } - for (var n in e) a.call(e, n) && (t[n] = e[n]); - })(t, nrWrapper, e), - nrWrapper); - function nrWrapper() { - var o, a, d, l; - try { - (a = this), - (o = [...arguments]), - (d = "function" == typeof n ? n(o, a) : n || {}); - } catch (t) { - u([t, "", [o, a, s], d], e); - } - i(r + "start", [o, a, s], d, c); - try { - return (l = t.apply(a, o)); - } catch (e) { - throw (i(r + "err", [o, a, e], d, c), e); - } finally { - i(r + "end", [o, a, l], d, c); - } - } - } - function i(r, n, i, o) { - if (!s || t) { - var a = s; - s = !0; - try { - e.emit(r, n, i, t, o); - } catch (t) { - u([t, r, n, i], e); - } - s = a; - } - } - } - function u(e, t) { - t || (t = n.ee); - try { - t.emit("internal-error", e); - } catch (e) {} - } - function d(e) { - return !(e && "function" == typeof e && e.apply && !e[o]); - } - }, - 9300: (e, t, r) => { - "use strict"; - r.d(t, { T: () => n }); - const n = r(860).K.ajax; - }, - 3333: (e, t, r) => { - "use strict"; - r.d(t, { T: () => n }); - const n = r(860).K.genericEvents; - }, - 6774: (e, t, r) => { - "use strict"; - r.d(t, { T: () => n }); - const n = r(860).K.jserrors; - }, - 993: (e, t, r) => { - "use strict"; - r.d(t, { ET: () => o, It: () => s, TZ: () => a, p_: () => i }); - var n = r(860); - const i = { - ERROR: "ERROR", - WARN: "WARN", - INFO: "INFO", - DEBUG: "DEBUG", - TRACE: "TRACE", - }, - o = "log", - a = n.K.logging, - s = 1e6; - }, - 3785: (e, t, r) => { - "use strict"; - r.d(t, { R: () => c, b: () => u }); - var n = r(9908), - i = r(1863), - o = r(860), - a = r(3969), - s = r(993); - function c(e, t) { - let r = - arguments.length > 2 && void 0 !== arguments[2] - ? arguments[2] - : {}, - c = - arguments.length > 3 && void 0 !== arguments[3] - ? arguments[3] - : s.p_.INFO; - (0, n.p)( - a.xV, - ["API/logging/".concat(c.toLowerCase(), "/called")], - void 0, - o.K.metrics, - e - ), - (0, n.p)(s.ET, [(0, i.t)(), t, r, c], void 0, o.K.logging, e); - } - function u(e) { - return ( - "string" == typeof e && Object.values(s.p_).some((t) => t === e) - ); - } - }, - 3969: (e, t, r) => { - "use strict"; - r.d(t, { - TZ: () => n, - XG: () => s, - rs: () => i, - xV: () => a, - z_: () => o, - }); - const n = r(860).K.metrics, - i = "sm", - o = "cm", - a = "storeSupportabilityMetrics", - s = "storeEventMetrics"; - }, - 6630: (e, t, r) => { - "use strict"; - r.d(t, { T: () => n }); - const n = r(860).K.pageViewEvent; - }, - 782: (e, t, r) => { - "use strict"; - r.d(t, { T: () => n }); - const n = r(860).K.pageViewTiming; - }, - 6344: (e, t, r) => { - "use strict"; - r.d(t, { - BB: () => f, - G4: () => o, - It: () => c, - No: () => u, - Qb: () => h, - TZ: () => i, - Ug: () => a, - _s: () => s, - bc: () => l, - yP: () => d, - }); - var n = r(2614); - const i = r(860).K.sessionReplay, - o = { - RECORD: "recordReplay", - PAUSE: "pauseReplay", - REPLAY_RUNNING: "replayRunning", - ERROR_DURING_REPLAY: "errorDuringReplay", - }, - a = 0.12, - s = { - DomContentLoaded: 0, - Load: 1, - FullSnapshot: 2, - IncrementalSnapshot: 3, - Meta: 4, - Custom: 5, - }, - c = 1e6, - u = 64e3, - d = { [n.g.ERROR]: 15e3, [n.g.FULL]: 3e5, [n.g.OFF]: 0 }, - l = { - RESET: { message: "Session was reset", sm: "Reset" }, - IMPORT: { message: "Recorder failed to import", sm: "Import" }, - TOO_MANY: { message: "429: Too Many Requests", sm: "Too-Many" }, - TOO_BIG: { message: "Payload was too large", sm: "Too-Big" }, - CROSS_TAB: { - message: "Session Entity was set to OFF on another tab", - sm: "Cross-Tab", - }, - ENTITLEMENTS: { - message: "Session Replay is not allowed and will not be started", - sm: "Entitlement", - }, - }, - f = 5e3, - h = { API: "api" }; - }, - 5270: (e, t, r) => { - "use strict"; - r.d(t, { Aw: () => s, CT: () => c, SR: () => a }); - var n = r(2983), - i = r(7767), - o = r(6154); - function a(e) { - return ( - !!n.hR.MO && - (0, i.V)(e) && - !0 === (0, n.gD)(e, "session_trace.enabled") - ); - } - function s(e) { - return !0 === (0, n.gD)(e, "session_replay.preload") && a(e); - } - function c(e, t) { - const r = t.correctAbsoluteTimestamp(e); - return { - originalTimestamp: e, - correctedTimestamp: r, - timestampDiff: e - r, - originTime: o.WN, - correctedOriginTime: t.correctedOriginTime, - originTimeDiff: Math.floor(o.WN - t.correctedOriginTime), - }; - } - }, - 3738: (e, t, r) => { - "use strict"; - r.d(t, { - He: () => i, - Kp: () => s, - Lc: () => u, - Rz: () => d, - TZ: () => n, - bD: () => o, - d3: () => a, - jx: () => l, - uP: () => c, - }); - const n = r(860).K.sessionTrace, - i = "bstResource", - o = "resource", - a = "-start", - s = "-end", - c = "fn" + a, - u = "fn" + s, - d = "pushState", - l = 1e3; - }, - 3962: (e, t, r) => { - "use strict"; - r.d(t, { - AM: () => o, - O2: () => s, - Qu: () => c, - TZ: () => a, - ih: () => u, - tC: () => i, - }); - var n = r(860); - const i = ["click", "keydown", "submit"], - o = "api", - a = n.K.softNav, - s = { INITIAL_PAGE_LOAD: "", ROUTE_CHANGE: 1, UNSPECIFIED: 2 }, - c = { INTERACTION: 1, AJAX: 2, CUSTOM_END: 3, CUSTOM_TRACER: 4 }, - u = { IP: "in progress", FIN: "finished", CAN: "cancelled" }; - }, - 7378: (e, t, r) => { - "use strict"; - r.d(t, { - $p: () => x, - BR: () => b, - Kp: () => R, - L3: () => y, - Lc: () => c, - NC: () => o, - SG: () => d, - TZ: () => i, - U6: () => g, - UT: () => m, - d3: () => w, - dT: () => f, - e5: () => A, - gx: () => v, - l9: () => l, - oW: () => h, - op: () => p, - rw: () => u, - tH: () => E, - uP: () => s, - wW: () => T, - xq: () => a, - }); - var n = r(2983); - const i = r(860).K.spa, - o = ["click", "submit", "keypress", "keydown", "keyup", "change"], - a = 999, - s = "fn-start", - c = "fn-end", - u = "cb-start", - d = "api-ixn-", - l = "remaining", - f = "interaction", - h = "spaNode", - g = "jsonpNode", - p = "fetch-start", - m = "fetch-done", - v = "fetch-body-", - b = "jsonp-end", - y = n.hR.ST, - w = "-start", - R = "-end", - x = "-body", - T = "cb" + R, - A = "jsTime", - E = "fetch"; - }, - 4234: (e, t, r) => { - "use strict"; - r.d(t, { W: () => i }); - var n = r(7836); - class i { - constructor(e, t, r) { - (this.agentIdentifier = e), - (this.aggregator = t), - (this.ee = n.ee.get(e)), - (this.featureName = r), - (this.blocked = !1); - } - } - }, - 7767: (e, t, r) => { - "use strict"; - r.d(t, { V: () => o }); - var n = r(2983), - i = r(6154); - const o = (e) => i.RI && !0 === (0, n.gD)(e, "privacy.cookies_enabled"); - }, - 425: (e, t, r) => { - "use strict"; - r.d(t, { j: () => O }); - var n = r(860), - i = r(2983), - o = r(9908), - a = r(7836), - s = r(1687), - c = r(5289), - u = r(6154), - d = r(944), - l = r(3969), - f = r(384), - h = r(6344); - const g = [ - "setErrorHandler", - "finished", - "addToTrace", - "addRelease", - "addPageAction", - "setCurrentRouteName", - "setPageViewName", - "setCustomAttribute", - "interaction", - "noticeError", - "setUserId", - "setApplicationVersion", - "start", - h.G4.RECORD, - h.G4.PAUSE, - "log", - "wrapLogger", - ], - p = ["setErrorHandler", "finished", "addToTrace", "addRelease"]; - var m = r(1863), - v = r(2614), - b = r(993), - y = r(3785), - w = r(2646), - R = r(3434); - function x(e, t, r, n) { - if ( - "object" != typeof t || - !t || - "string" != typeof r || - !r || - "function" != typeof t[r] - ) - return (0, d.R)(29); - const i = (function (e) { - return (e || a.ee).get("logger"); - })(e), - o = (0, R.YM)(i), - s = new w.y(a.P); - return ( - (s.level = n.level), - (s.customAttributes = n.customAttributes), - o.inPlace(t, [r], "wrap-logger-", s), - i - ); - } - function T() { - const e = (0, f.pV)(); - g.forEach((t) => { - e[t] = function () { - for ( - var r = arguments.length, n = new Array(r), i = 0; - i < r; - i++ - ) - n[i] = arguments[i]; - return (function (t) { - for ( - var r = arguments.length, - n = new Array(r > 1 ? r - 1 : 0), - i = 1; - i < r; - i++ - ) - n[i - 1] = arguments[i]; - let o = []; - return ( - Object.values(e.initializedAgents).forEach((e) => { - e && e.api - ? e.exposed && e.api[t] && o.push(e.api[t](...n)) - : (0, d.R)(38, t); - }), - o.length > 1 ? o : o[0] - ); - })(t, ...n); - }; - }); - } - const A = {}; - var E = r(5284); - const N = (e) => { - const t = e.startsWith("http"); - (e += "/"), (r.p = t ? e : "https://" + e); - }; - let S = !1; - function O(e) { - let t = - arguments.length > 1 && void 0 !== arguments[1] - ? arguments[1] - : {}, - g = arguments.length > 2 ? arguments[2] : void 0, - w = arguments.length > 3 ? arguments[3] : void 0, - { - init: R, - info: O, - loader_config: I, - runtime: _ = {}, - exposed: j = !0, - } = t; - _.loaderType = g; - const P = (0, f.pV)(); - O || ((R = P.init), (O = P.info), (I = P.loader_config)), - (0, i.xN)(e.agentIdentifier, R || {}), - (0, i.aN)(e.agentIdentifier, I || {}), - (O.jsAttributes ??= {}), - u.bv && (O.jsAttributes.isWorker = !0), - (0, i.x1)(e.agentIdentifier, O); - const C = (0, i.D0)(e.agentIdentifier), - k = [O.beacon, O.errorBeacon]; - S || - (C.proxy.assets && (N(C.proxy.assets), k.push(C.proxy.assets)), - C.proxy.beacon && k.push(C.proxy.beacon), - T(), - (0, f.US)("activatedFeatures", E.B), - (e.runSoftNavOverSpa &&= - !0 === C.soft_navigations.enabled && - C.feature_flags.includes("soft_nav"))), - (_.denyList = [ - ...(C.ajax.deny_list || []), - ...(C.ajax.block_internal ? k : []), - ]), - (_.ptid = e.agentIdentifier), - (0, i.V)(e.agentIdentifier, _), - (e.ee = a.ee.get(e.agentIdentifier)), - void 0 === e.api && - (e.api = (function (e, t) { - let f = - arguments.length > 2 && - void 0 !== arguments[2] && - arguments[2]; - t || (0, s.Ak)(e, "api"); - const g = {}; - var w = a.ee.get(e), - R = w.get("tracer"); - (A[e] = v.g.OFF), - w.on(h.G4.REPLAY_RUNNING, (t) => { - A[e] = t; - }); - var T = "api-", - E = T + "ixn-"; - function N(t, r, n, o) { - const a = (0, i.Vp)(e); - return ( - null === r - ? delete a.jsAttributes[t] - : (0, i.x1)(e, { - ...a, - jsAttributes: { ...a.jsAttributes, [t]: r }, - }), - I(T, n, !0, o || null === r ? "session" : void 0)(t, r) - ); - } - function S() {} - (g.log = function (e) { - let { customAttributes: t = {}, level: r = b.p_.INFO } = - arguments.length > 1 && void 0 !== arguments[1] - ? arguments[1] - : {}; - (0, o.p)(l.xV, ["API/log/called"], void 0, n.K.metrics, w), - (0, y.R)(w, e, t, r); - }), - (g.wrapLogger = function (e, t) { - let { customAttributes: r = {}, level: i = b.p_.INFO } = - arguments.length > 2 && void 0 !== arguments[2] - ? arguments[2] - : {}; - (0, o.p)( - l.xV, - ["API/wrapLogger/called"], - void 0, - n.K.metrics, - w - ), - x(w, e, t, { customAttributes: r, level: i }); - }), - p.forEach((e) => { - g[e] = I(T, e, !0, "api"); - }), - (g.addPageAction = I( - T, - "addPageAction", - !0, - n.K.genericEvents - )), - (g.setPageViewName = function (t, r) { - if ("string" == typeof t) - return ( - "/" !== t.charAt(0) && (t = "/" + t), - ((0, i.fr)(e).customTransaction = - (r || "http://custom.transaction") + t), - I(T, "setPageViewName", !0)() - ); - }), - (g.setCustomAttribute = function (e, t) { - let r = - arguments.length > 2 && - void 0 !== arguments[2] && - arguments[2]; - if ("string" == typeof e) { - if ( - ["string", "number", "boolean"].includes(typeof t) || - null === t - ) - return N(e, t, "setCustomAttribute", r); - (0, d.R)(40, typeof t); - } else (0, d.R)(39, typeof e); - }), - (g.setUserId = function (e) { - if ("string" == typeof e || null === e) - return N("enduser.id", e, "setUserId", !0); - (0, d.R)(41, typeof e); - }), - (g.setApplicationVersion = function (e) { - if ("string" == typeof e || null === e) - return N( - "application.version", - e, - "setApplicationVersion", - !1 - ); - (0, d.R)(42, typeof e); - }), - (g.start = () => { - try { - (0, o.p)( - l.xV, - ["API/start/called"], - void 0, - n.K.metrics, - w - ), - w.emit("manual-start-all"); - } catch (e) { - (0, d.R)(23, e); - } - }), - (g[h.G4.RECORD] = function () { - (0, o.p)( - l.xV, - ["API/recordReplay/called"], - void 0, - n.K.metrics, - w - ), - (0, o.p)(h.G4.RECORD, [], void 0, n.K.sessionReplay, w); - }), - (g[h.G4.PAUSE] = function () { - (0, o.p)( - l.xV, - ["API/pauseReplay/called"], - void 0, - n.K.metrics, - w - ), - (0, o.p)(h.G4.PAUSE, [], void 0, n.K.sessionReplay, w); - }), - (g.interaction = function (e) { - return new S().get("object" == typeof e ? e : {}); - }); - const O = (S.prototype = { - createTracer: function (e, t) { - var r = {}, - i = this, - a = "function" == typeof t; - return ( - (0, o.p)( - l.xV, - ["API/createTracer/called"], - void 0, - n.K.metrics, - w - ), - f || - (0, o.p)( - E + "tracer", - [(0, m.t)(), e, r], - i, - n.K.spa, - w - ), - function () { - if ( - (R.emit( - (a ? "" : "no-") + "fn-start", - [(0, m.t)(), i, a], - r - ), - a) - ) - try { - return t.apply(this, arguments); - } catch (e) { - const t = "string" == typeof e ? new Error(e) : e; - throw ( - (R.emit("fn-err", [arguments, this, t], r), t) - ); - } finally { - R.emit("fn-end", [(0, m.t)()], r); - } - } - ); - }, - }); - function I(e, t, r, i) { - return function () { - return ( - (0, o.p)( - l.xV, - ["API/" + t + "/called"], - void 0, - n.K.metrics, - w - ), - i && - (0, o.p)( - e + t, - [(0, m.t)(), ...arguments], - r ? null : this, - i, - w - ), - r ? void 0 : this - ); - }; - } - function _() { - r.e(478) - .then(r.bind(r, 8778)) - .then((t) => { - let { setAPI: r } = t; - r(e), (0, s.Ze)(e, "api"); - }) - .catch((e) => { - (0, d.R)(27, e), w.abort(); - }); - } - return ( - [ - "actionText", - "setName", - "setAttribute", - "save", - "ignore", - "onEnd", - "getContext", - "end", - "get", - ].forEach((e) => { - O[e] = I(E, e, void 0, f ? n.K.softNav : n.K.spa); - }), - (g.setCurrentRouteName = f - ? I(E, "routeName", void 0, n.K.softNav) - : I(T, "routeName", !0, n.K.spa)), - (g.noticeError = function (t, r) { - "string" == typeof t && (t = new Error(t)), - (0, o.p)( - l.xV, - ["API/noticeError/called"], - void 0, - n.K.metrics, - w - ), - (0, o.p)( - "err", - [t, (0, m.t)(), !1, r, !!A[e]], - void 0, - n.K.jserrors, - w - ); - }), - u.RI ? (0, c.GG)(() => _(), !0) : _(), - g - ); - })(e.agentIdentifier, w, e.runSoftNavOverSpa)), - void 0 === e.exposed && (e.exposed = j), - (S = !0); - } - }, - 8374: (e, t, r) => { - r.nc = (() => { - try { - return document?.currentScript?.nonce; - } catch (e) {} - return ""; - })(); - }, - 860: (e, t, r) => { - "use strict"; - r.d(t, { K: () => n, P: () => i }); - const n = { - ajax: "ajax", - genericEvents: "generic_events", - jserrors: "jserrors", - logging: "logging", - metrics: "metrics", - pageAction: "page_action", - pageViewEvent: "page_view_event", - pageViewTiming: "page_view_timing", - sessionReplay: "session_replay", - sessionTrace: "session_trace", - softNav: "soft_navigations", - spa: "spa", - }, - i = { - [n.pageViewEvent]: 1, - [n.pageViewTiming]: 2, - [n.metrics]: 3, - [n.jserrors]: 4, - [n.spa]: 5, - [n.ajax]: 6, - [n.sessionTrace]: 7, - [n.softNav]: 8, - [n.sessionReplay]: 9, - [n.logging]: 10, - [n.genericEvents]: 11, - }; - }, - }, - n = {}; - function i(e) { - var t = n[e]; - if (void 0 !== t) return t.exports; - var o = (n[e] = { exports: {} }); - return r[e](o, o.exports, i), o.exports; - } - (i.m = r), - (i.d = (e, t) => { - for (var r in t) - i.o(t, r) && - !i.o(e, r) && - Object.defineProperty(e, r, { enumerable: !0, get: t[r] }); - }), - (i.f = {}), - (i.e = (e) => - Promise.all(Object.keys(i.f).reduce((t, r) => (i.f[r](e, t), t), []))), - (i.u = (e) => - ({ 212: "nr-spa-compressor", 249: "nr-spa-recorder", 478: "nr-spa" }[e] + - "-1.264.0.min.js")), - (i.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), - (e = {}), - (t = "NRBA-1.264.0.PROD:"), - (i.l = (r, n, o, a) => { - if (e[r]) e[r].push(n); - else { - var s, c; - if (void 0 !== o) - for ( - var u = document.getElementsByTagName("script"), d = 0; - d < u.length; - d++ - ) { - var l = u[d]; - if ( - l.getAttribute("src") == r || - l.getAttribute("data-webpack") == t + o - ) { - s = l; - break; - } - } - if (!s) { - c = !0; - var f = { - 478: "sha512-McVw1bGHjjUf5GGS4WenO1eJQ8s7UloN07RDcN8bH9X1iGHTAJZ38fRFPC9DW3pFKJ2uKysBuvqehJYvHcIthg==", - 249: "sha512-QYiFK3L0u5EMr5V3YITSZcfvK9upxp9dvxRVLY9qis5pUIvOkKb5SKvPYPNw7sEKXP8TzyY2DLpLmqHxWCZ2cg==", - 212: "sha512-pdn6WS9R03kXhRA2vQoZgApGomYEaTBtHJfyGcBu9pt7MUR6schZTqs6BcrSDNoPhpJO6N5kUTMqB2WknZMDIA==", - }; - ((s = document.createElement("script")).charset = "utf-8"), - (s.timeout = 120), - i.nc && s.setAttribute("nonce", i.nc), - s.setAttribute("data-webpack", t + o), - (s.src = r), - 0 !== s.src.indexOf(window.location.origin + "/") && - (s.crossOrigin = "anonymous"), - f[a] && (s.integrity = f[a]); - } - e[r] = [n]; - var h = (t, n) => { - (s.onerror = s.onload = null), clearTimeout(g); - var i = e[r]; - if ( - (delete e[r], - s.parentNode && s.parentNode.removeChild(s), - i && i.forEach((e) => e(n)), - t) - ) - return t(n); - }, - g = setTimeout( - h.bind(null, void 0, { type: "timeout", target: s }), - 12e4 - ); - (s.onerror = h.bind(null, s.onerror)), - (s.onload = h.bind(null, s.onload)), - c && document.head.appendChild(s); - } - }), - (i.r = (e) => { - "undefined" != typeof Symbol && - Symbol.toStringTag && - Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), - Object.defineProperty(e, "__esModule", { value: !0 }); - }), - (i.p = "https://js-agent.newrelic.com/"), - (() => { - var e = { 38: 0, 788: 0 }; - i.f.j = (t, r) => { - var n = i.o(e, t) ? e[t] : void 0; - if (0 !== n) - if (n) r.push(n[2]); - else { - var o = new Promise((r, i) => (n = e[t] = [r, i])); - r.push((n[2] = o)); - var a = i.p + i.u(t), - s = new Error(); - i.l( - a, - (r) => { - if (i.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) { - var o = r && ("load" === r.type ? "missing" : r.type), - a = r && r.target && r.target.src; - (s.message = - "Loading chunk " + t + " failed.\n(" + o + ": " + a + ")"), - (s.name = "ChunkLoadError"), - (s.type = o), - (s.request = a), - n[1](s); - } - }, - "chunk-" + t, - t - ); - } - }; - var t = (t, r) => { - var n, - o, - [a, s, c] = r, - u = 0; - if (a.some((t) => 0 !== e[t])) { - for (n in s) i.o(s, n) && (i.m[n] = s[n]); - if (c) c(i); - } - for (t && t(r); u < a.length; u++) - (o = a[u]), i.o(e, o) && e[o] && e[o][0](), (e[o] = 0); - }, - r = (self["webpackChunk:NRBA-1.264.0.PROD"] = - self["webpackChunk:NRBA-1.264.0.PROD"] || []); - r.forEach(t.bind(null, 0)), (r.push = t.bind(null, r.push.bind(r))); - })(), - (() => { - "use strict"; - i(8374); - var e = i(944), - t = i(6344), - r = i(9566); - class n { - agentIdentifier; - constructor() { - let e = - arguments.length > 0 && void 0 !== arguments[0] - ? arguments[0] - : (0, r.LA)(16); - this.agentIdentifier = e; - } - #e(t) { - for ( - var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; - i < r; - i++ - ) - n[i - 1] = arguments[i]; - if ("function" == typeof this.api?.[t]) return this.api[t](...n); - (0, e.R)(35, t); - } - addPageAction(e, t) { - return this.#e("addPageAction", e, t); - } - setPageViewName(e, t) { - return this.#e("setPageViewName", e, t); - } - setCustomAttribute(e, t, r) { - return this.#e("setCustomAttribute", e, t, r); - } - noticeError(e, t) { - return this.#e("noticeError", e, t); - } - setUserId(e) { - return this.#e("setUserId", e); - } - setApplicationVersion(e) { - return this.#e("setApplicationVersion", e); - } - setErrorHandler(e) { - return this.#e("setErrorHandler", e); - } - finished(e) { - return this.#e("finished", e); - } - addRelease(e, t) { - return this.#e("addRelease", e, t); - } - start(e) { - return this.#e("start", e); - } - recordReplay() { - return this.#e(t.G4.RECORD); - } - pauseReplay() { - return this.#e(t.G4.PAUSE); - } - addToTrace(e) { - return this.#e("addToTrace", e); - } - setCurrentRouteName(e) { - return this.#e("setCurrentRouteName", e); - } - interaction() { - return this.#e("interaction"); - } - log(e, t) { - return this.#e("logInfo", e, t); - } - wrapLogger(e, t, r) { - return this.#e("wrapLogger", e, t, r); - } - } - var o = i(860), - a = i(2983); - const s = Object.values(o.K); - function c(e) { - const t = {}; - return ( - s.forEach((r) => { - t[r] = (function (e, t) { - return !0 === (0, a.gD)(t, "".concat(e, ".enabled")); - })(r, e); - }), - t - ); - } - var u = i(425); - var d = i(1687), - l = i(4234), - f = i(5289), - h = i(6154), - g = i(5270), - p = i(7767), - m = i(6389); - class v extends l.W { - constructor(e, t, r) { - let n = - !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]; - super(e, t, r), - (this.auto = n), - (this.abortHandler = void 0), - (this.featAggregate = void 0), - (this.onAggregateImported = void 0), - !1 === - (0, a.gD)( - this.agentIdentifier, - "".concat(this.featureName, ".autoStart") - ) && (this.auto = !1), - this.auto - ? (0, d.Ak)(e, r) - : this.ee.on( - "manual-start-all", - (0, m.J)(() => { - (0, d.Ak)(this.agentIdentifier, this.featureName), - (this.auto = !0), - this.importAggregator(); - }) - ); - } - importAggregator() { - let t, - r = - arguments.length > 0 && void 0 !== arguments[0] - ? arguments[0] - : {}; - if (this.featAggregate || !this.auto) return; - this.onAggregateImported = new Promise((e) => { - t = e; - }); - const n = async () => { - let n; - try { - if ((0, p.V)(this.agentIdentifier)) { - const { setupAgentSession: e } = await i - .e(478) - .then(i.bind(i, 6526)); - n = e(this.agentIdentifier); - } - } catch (t) { - (0, e.R)(20, t), - this.ee.emit("internal-error", [t]), - this.featureName === o.K.sessionReplay && this.abortHandler?.(); - } - try { - if (!this.#t(this.featureName, n)) - return ( - (0, d.Ze)(this.agentIdentifier, this.featureName), void t(!1) - ); - const { lazyFeatureLoader: e } = await i - .e(478) - .then(i.bind(i, 6103)), - { Aggregate: o } = await e(this.featureName, "aggregate"); - (this.featAggregate = new o( - this.agentIdentifier, - this.aggregator, - r - )), - t(!0); - } catch (r) { - (0, e.R)(34, r), - this.abortHandler?.(), - (0, d.Ze)(this.agentIdentifier, this.featureName, !0), - t(!1), - this.ee && this.ee.abort(); - } - }; - h.RI ? (0, f.GG)(() => n(), !0) : n(); - } - #t(e, t) { - switch (e) { - case o.K.sessionReplay: - return (0, g.SR)(this.agentIdentifier) && !!t; - case o.K.sessionTrace: - return !!t; - default: - return !0; - } - } - } - var b = i(6630); - class y extends v { - static featureName = (() => b.T)(); - constructor(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - super(e, t, b.T, r), this.importAggregator(); - } - } - var w = i(4777); - class R extends w.J { - constructor(e) { - super(e), (this.aggregatedData = {}); - } - store(e, t, r, n, i) { - var o = this.getBucket(e, t, r, i); - return ( - (o.metrics = (function (e, t) { - t || (t = { count: 0 }); - return ( - (t.count += 1), - Object.entries(e || {}).forEach((e) => { - let [r, n] = e; - t[r] = x(n, t[r]); - }), - t - ); - })(n, o.metrics)), - o - ); - } - merge(e, t, r, n, i) { - var o = this.getBucket(e, t, n, i); - if (o.metrics) { - var a = o.metrics; - (a.count += r.count), - Object.keys(r || {}).forEach((e) => { - if ("count" !== e) { - var t = a[e], - n = r[e]; - n && !n.c - ? (a[e] = x(n.t, t)) - : (a[e] = (function (e, t) { - if (!t) return e; - t.c || (t = T(t.t)); - return ( - (t.min = Math.min(e.min, t.min)), - (t.max = Math.max(e.max, t.max)), - (t.t += e.t), - (t.sos += e.sos), - (t.c += e.c), - t - ); - })(n, a[e])); - } - }); - } else o.metrics = r; - } - storeMetric(e, t, r, n) { - var i = this.getBucket(e, t, r); - return (i.stats = x(n, i.stats)), i; - } - getBucket(e, t, r, n) { - this.aggregatedData[e] || (this.aggregatedData[e] = {}); - var i = this.aggregatedData[e][t]; - return ( - i || - ((i = this.aggregatedData[e][t] = { params: r || {} }), - n && (i.custom = n)), - i - ); - } - get(e, t) { - return t - ? this.aggregatedData[e] && this.aggregatedData[e][t] - : this.aggregatedData[e]; - } - take(e) { - for (var t = {}, r = "", n = !1, i = 0; i < e.length; i++) - (t[(r = e[i])] = Object.values(this.aggregatedData[r] || {})), - t[r].length && (n = !0), - delete this.aggregatedData[r]; - return n ? t : null; - } - } - function x(e, t) { - return null == e - ? (function (e) { - e ? e.c++ : (e = { c: 1 }); - return e; - })(t) - : t - ? (t.c || (t = T(t.t)), - (t.c += 1), - (t.t += e), - (t.sos += e * e), - e > t.max && (t.max = e), - e < t.min && (t.min = e), - t) - : { t: e }; - } - function T(e) { - return { t: e, min: e, max: e, sos: e * e, c: 1 }; - } - var A = i(384); - var E = i(9908), - N = i(2843), - S = i(3878), - O = i(782), - I = i(1863); - class _ extends v { - static featureName = (() => O.T)(); - constructor(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - super(e, t, O.T, r), - h.RI && - ((0, N.u)( - () => (0, E.p)("docHidden", [(0, I.t)()], void 0, O.T, this.ee), - !0 - ), - (0, S.sp)("pagehide", () => - (0, E.p)("winPagehide", [(0, I.t)()], void 0, O.T, this.ee) - ), - this.importAggregator()); - } - } - var j = i(3969); - class P extends v { - static featureName = (() => j.TZ)(); - constructor(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - super(e, t, j.TZ, r), this.importAggregator(); - } - } - var C = i(6774), - k = i(3304); - class L { - constructor(e, t, r, n, i) { - (this.name = "UncaughtError"), - (this.message = "string" == typeof e ? e : (0, k.A)(e)), - (this.sourceURL = t), - (this.line = r), - (this.column = n), - (this.__newrelic = i); - } - } - function D(e) { - return K(e) - ? e - : new L( - void 0 !== e?.message ? e.message : e, - e?.filename || e?.sourceURL, - e?.lineno || e?.line, - e?.colno || e?.col, - e?.__newrelic - ); - } - function H(e) { - let t = "Unhandled Promise Rejection"; - if (K(e?.reason)) - try { - return ( - (e.reason.message = t + ": " + e.reason.message), D(e.reason) - ); - } catch (t) { - return D(e.reason); - } - if (void 0 === e.reason) return D(t); - const r = D(e.reason); - return (r.message = t + ": " + r?.message), r; - } - function M(e) { - if ( - e.error instanceof SyntaxError && - !/:\d+$/.test(e.error.stack?.trim()) - ) { - const t = new L( - e.message, - e.filename, - e.lineno, - e.colno, - e.error.__newrelic - ); - return (t.name = SyntaxError.name), t; - } - return K(e.error) ? e.error : D(e); - } - function K(e) { - return e instanceof Error && !!e.stack; - } - class U extends v { - static featureName = (() => C.T)(); - #r = !1; - constructor(e, r) { - let n = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - super(e, r, C.T, n); - try { - this.removeOnAbort = new AbortController(); - } catch (e) {} - this.ee.on("internal-error", (e) => { - this.abortHandler && - (0, E.p)( - "ierr", - [D(e), (0, I.t)(), !0, {}, this.#r], - void 0, - this.featureName, - this.ee - ); - }), - this.ee.on(t.G4.REPLAY_RUNNING, (e) => { - this.#r = e; - }), - h.gm.addEventListener( - "unhandledrejection", - (e) => { - this.abortHandler && - (0, E.p)( - "err", - [ - H(e), - (0, I.t)(), - !1, - { unhandledPromiseRejection: 1 }, - this.#r, - ], - void 0, - this.featureName, - this.ee - ); - }, - (0, S.jT)(!1, this.removeOnAbort?.signal) - ), - h.gm.addEventListener( - "error", - (e) => { - this.abortHandler && - (0, E.p)( - "err", - [M(e), (0, I.t)(), !1, {}, this.#r], - void 0, - this.featureName, - this.ee - ); - }, - (0, S.jT)(!1, this.removeOnAbort?.signal) - ), - (this.abortHandler = this.#n), - this.importAggregator(); - } - #n() { - this.removeOnAbort?.abort(), (this.abortHandler = void 0); - } - } - var G = i(8990); - let B = 1; - const V = "nr@id"; - function F(e) { - const t = typeof e; - return !e || ("object" !== t && "function" !== t) - ? -1 - : e === h.gm - ? 0 - : (0, G.I)(e, V, function () { - return B++; - }); - } - function W(e) { - if ("string" == typeof e && e.length) return e.length; - if ("object" == typeof e) { - if ( - "undefined" != typeof ArrayBuffer && - e instanceof ArrayBuffer && - e.byteLength - ) - return e.byteLength; - if ("undefined" != typeof Blob && e instanceof Blob && e.size) - return e.size; - if (!("undefined" != typeof FormData && e instanceof FormData)) - try { - return (0, k.A)(e).length; - } catch (e) { - return; - } - } - } - var z = i(8941), - Z = i(7485); - class q { - constructor(e) { - this.agentIdentifier = e; - } - generateTracePayload(e) { - if (!this.shouldGenerateTrace(e)) return null; - var t = (0, a.oC)(this.agentIdentifier); - if (!t) return null; - var n = (t.accountID || "").toString() || null, - i = (t.agentID || "").toString() || null, - o = (t.trustKey || "").toString() || null; - if (!n || !i) return null; - var s = (0, r.ZF)(), - c = (0, r.el)(), - u = Date.now(), - d = { spanId: s, traceId: c, timestamp: u }; - return ( - (e.sameOrigin || - (this.isAllowedOrigin(e) && - this.useTraceContextHeadersForCors())) && - ((d.traceContextParentHeader = - this.generateTraceContextParentHeader(s, c)), - (d.traceContextStateHeader = this.generateTraceContextStateHeader( - s, - u, - n, - i, - o - ))), - ((e.sameOrigin && !this.excludeNewrelicHeader()) || - (!e.sameOrigin && - this.isAllowedOrigin(e) && - this.useNewrelicHeaderForCors())) && - (d.newrelicHeader = this.generateTraceHeader(s, c, u, n, i, o)), - d - ); - } - generateTraceContextParentHeader(e, t) { - return "00-" + t + "-" + e + "-01"; - } - generateTraceContextStateHeader(e, t, r, n, i) { - return i + "@nr=0-1-" + r + "-" + n + "-" + e + "----" + t; - } - generateTraceHeader(e, t, r, n, i, o) { - if (!("function" == typeof h.gm?.btoa)) return null; - var a = { - v: [0, 1], - d: { ty: "Browser", ac: n, ap: i, id: e, tr: t, ti: r }, - }; - return o && n !== o && (a.d.tk = o), btoa((0, k.A)(a)); - } - shouldGenerateTrace(e) { - return this.isDtEnabled() && this.isAllowedOrigin(e); - } - isAllowedOrigin(e) { - var t = !1, - r = {}; - if ( - ((0, a.gD)(this.agentIdentifier, "distributed_tracing") && - (r = (0, a.D0)(this.agentIdentifier).distributed_tracing), - e.sameOrigin) - ) - t = !0; - else if (r.allowed_origins instanceof Array) - for (var n = 0; n < r.allowed_origins.length; n++) { - var i = (0, Z.D)(r.allowed_origins[n]); - if ( - e.hostname === i.hostname && - e.protocol === i.protocol && - e.port === i.port - ) { - t = !0; - break; - } - } - return t; - } - isDtEnabled() { - var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); - return !!e && !!e.enabled; - } - excludeNewrelicHeader() { - var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); - return !!e && !!e.exclude_newrelic_header; - } - useNewrelicHeaderForCors() { - var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); - return !!e && !1 !== e.cors_use_newrelic_header; - } - useTraceContextHeadersForCors() { - var e = (0, a.gD)(this.agentIdentifier, "distributed_tracing"); - return !!e && !!e.cors_use_tracecontext_headers; - } - } - var Y = i(9300), - X = i(7295), - J = ["load", "error", "abort", "timeout"], - Q = J.length, - ee = a.hR.REQ, - te = a.hR.XHR; - class re extends v { - static featureName = (() => Y.T)(); - constructor(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - super(e, t, Y.T, r), - (this.dt = new q(e)), - (this.handler = (e, t, r, n) => (0, E.p)(e, t, r, n, this.ee)); - try { - const e = { - xmlhttprequest: "xhr", - fetch: "fetch", - beacon: "beacon", - }; - h.gm?.performance?.getEntriesByType("resource").forEach((t) => { - if (t.initiatorType in e && 0 !== t.responseStatus) { - const r = { status: t.responseStatus }, - n = { - rxSize: t.transferSize, - duration: Math.floor(t.duration), - cbTime: 0, - }; - ne(r, t.name), - this.handler( - "xhr", - [r, n, t.startTime, t.responseEnd, e[t.initiatorType]], - void 0, - o.K.ajax - ); - } - }); - } catch (e) {} - (0, z.NZ)(this.ee), - (0, z.bX)(this.ee), - (function (e, t, r, n) { - function i(e) { - var t = this; - (t.totalCbs = 0), - (t.called = 0), - (t.cbTime = 0), - (t.end = x), - (t.ended = !1), - (t.xhrGuids = {}), - (t.lastSize = null), - (t.loadCaptureCalled = !1), - (t.params = this.params || {}), - (t.metrics = this.metrics || {}), - e.addEventListener( - "load", - function (r) { - T(t, e); - }, - (0, S.jT)(!1) - ), - h.lR || - e.addEventListener( - "progress", - function (e) { - t.lastSize = e.loaded; - }, - (0, S.jT)(!1) - ); - } - function s(e) { - (this.params = { method: e[0] }), - ne(this, e[1]), - (this.metrics = {}); - } - function c(t, r) { - var i = (0, a.oC)(e); - i.xpid && - this.sameOrigin && - r.setRequestHeader("X-NewRelic-ID", i.xpid); - var o = n.generateTracePayload(this.parsedOrigin); - if (o) { - var s = !1; - o.newrelicHeader && - (r.setRequestHeader("newrelic", o.newrelicHeader), - (s = !0)), - o.traceContextParentHeader && - (r.setRequestHeader( - "traceparent", - o.traceContextParentHeader - ), - o.traceContextStateHeader && - r.setRequestHeader( - "tracestate", - o.traceContextStateHeader - ), - (s = !0)), - s && (this.dt = o); - } - } - function u(e, r) { - var n = this.metrics, - i = e[0], - o = this; - if (n && i) { - var a = W(i); - a && (n.txSize = a); - } - (this.startTime = (0, I.t)()), - (this.body = i), - (this.listener = function (e) { - try { - "abort" !== e.type || - o.loadCaptureCalled || - (o.params.aborted = !0), - ("load" !== e.type || - (o.called === o.totalCbs && - (o.onloadCalled || "function" != typeof r.onload) && - "function" == typeof o.end)) && - o.end(r); - } catch (e) { - try { - t.emit("internal-error", [e]); - } catch (e) {} - } - }); - for (var s = 0; s < Q; s++) - r.addEventListener(J[s], this.listener, (0, S.jT)(!1)); - } - function d(e, t, r) { - (this.cbTime += e), - t ? (this.onloadCalled = !0) : (this.called += 1), - this.called !== this.totalCbs || - (!this.onloadCalled && "function" == typeof r.onload) || - "function" != typeof this.end || - this.end(r); - } - function l(e, t) { - var r = "" + F(e) + !!t; - this.xhrGuids && - !this.xhrGuids[r] && - ((this.xhrGuids[r] = !0), (this.totalCbs += 1)); - } - function f(e, t) { - var r = "" + F(e) + !!t; - this.xhrGuids && - this.xhrGuids[r] && - (delete this.xhrGuids[r], (this.totalCbs -= 1)); - } - function g() { - this.endTime = (0, I.t)(); - } - function p(e, r) { - r instanceof te && - "load" === e[0] && - t.emit("xhr-load-added", [e[1], e[2]], r); - } - function m(e, r) { - r instanceof te && - "load" === e[0] && - t.emit("xhr-load-removed", [e[1], e[2]], r); - } - function v(e, t, r) { - t instanceof te && - ("onload" === r && (this.onload = !0), - ("load" === (e[0] && e[0].type) || this.onload) && - (this.xhrCbStart = (0, I.t)())); - } - function b(e, r) { - this.xhrCbStart && - t.emit( - "xhr-cb-time", - [(0, I.t)() - this.xhrCbStart, this.onload, r], - r - ); - } - function y(e) { - var t, - r = e[1] || {}; - if ( - ("string" == typeof e[0] - ? 0 === (t = e[0]).length && - h.RI && - (t = "" + h.gm.location.href) - : e[0] && e[0].url - ? (t = e[0].url) - : h.gm?.URL && e[0] && e[0] instanceof URL - ? (t = e[0].href) - : "function" == typeof e[0].toString && - (t = e[0].toString()), - "string" == typeof t && 0 !== t.length) - ) { - t && - ((this.parsedOrigin = (0, Z.D)(t)), - (this.sameOrigin = this.parsedOrigin.sameOrigin)); - var i = n.generateTracePayload(this.parsedOrigin); - if (i && (i.newrelicHeader || i.traceContextParentHeader)) - if (e[0] && e[0].headers) - s(e[0].headers, i) && (this.dt = i); - else { - var o = {}; - for (var a in r) o[a] = r[a]; - (o.headers = new Headers(r.headers || {})), - s(o.headers, i) && (this.dt = i), - e.length > 1 ? (e[1] = o) : e.push(o); - } - } - function s(e, t) { - var r = !1; - return ( - t.newrelicHeader && - (e.set("newrelic", t.newrelicHeader), (r = !0)), - t.traceContextParentHeader && - (e.set("traceparent", t.traceContextParentHeader), - t.traceContextStateHeader && - e.set("tracestate", t.traceContextStateHeader), - (r = !0)), - r - ); - } - } - function w(e, t) { - (this.params = {}), - (this.metrics = {}), - (this.startTime = (0, I.t)()), - (this.dt = t), - e.length >= 1 && (this.target = e[0]), - e.length >= 2 && (this.opts = e[1]); - var r, - n = this.opts || {}, - i = this.target; - "string" == typeof i - ? (r = i) - : "object" == typeof i && i instanceof ee - ? (r = i.url) - : h.gm?.URL && - "object" == typeof i && - i instanceof URL && - (r = i.href), - ne(this, r); - var o = ( - "" + ((i && i instanceof ee && i.method) || n.method || "GET") - ).toUpperCase(); - (this.params.method = o), - (this.body = n.body), - (this.txSize = W(n.body) || 0); - } - function R(e, t) { - if ( - ((this.endTime = (0, I.t)()), - this.params || (this.params = {}), - (0, X.iW)(this.params)) - ) - return; - let n; - (this.params.status = t ? t.status : 0), - "string" == typeof this.rxSize && - this.rxSize.length > 0 && - (n = +this.rxSize); - const i = { - txSize: this.txSize, - rxSize: n, - duration: (0, I.t)() - this.startTime, - }; - r( - "xhr", - [this.params, i, this.startTime, this.endTime, "fetch"], - this, - o.K.ajax - ); - } - function x(e) { - const t = this.params, - n = this.metrics; - if (!this.ended) { - this.ended = !0; - for (let t = 0; t < Q; t++) - e.removeEventListener(J[t], this.listener, !1); - t.aborted || - (0, X.iW)(t) || - ((n.duration = (0, I.t)() - this.startTime), - this.loadCaptureCalled || 4 !== e.readyState - ? null == t.status && (t.status = 0) - : T(this, e), - (n.cbTime = this.cbTime), - r( - "xhr", - [t, n, this.startTime, this.endTime, "xhr"], - this, - o.K.ajax - )); - } - } - function T(e, r) { - e.params.status = r.status; - var n = (function (e, t) { - var r = e.responseType; - return "json" === r && null !== t - ? t - : "arraybuffer" === r || "blob" === r || "json" === r - ? W(e.response) - : "text" === r || "" === r || void 0 === r - ? W(e.responseText) - : void 0; - })(r, e.lastSize); - if ((n && (e.metrics.rxSize = n), e.sameOrigin)) { - var i = r.getResponseHeader("X-NewRelic-App-Data"); - i && - ((0, E.p)( - j.rs, - ["Ajax/CrossApplicationTracing/Header/Seen"], - void 0, - o.K.metrics, - t - ), - (e.params.cat = i.split(", ").pop())); - } - e.loadCaptureCalled = !0; - } - t.on("new-xhr", i), - t.on("open-xhr-start", s), - t.on("open-xhr-end", c), - t.on("send-xhr-start", u), - t.on("xhr-cb-time", d), - t.on("xhr-load-added", l), - t.on("xhr-load-removed", f), - t.on("xhr-resolved", g), - t.on("addEventListener-end", p), - t.on("removeEventListener-end", m), - t.on("fn-end", b), - t.on("fetch-before-start", y), - t.on("fetch-start", w), - t.on("fn-start", v), - t.on("fetch-done", R); - })(e, this.ee, this.handler, this.dt), - this.importAggregator(); - } - } - function ne(e, t) { - var r = (0, Z.D)(t), - n = e.params || e; - (n.hostname = r.hostname), - (n.port = r.port), - (n.protocol = r.protocol), - (n.host = r.hostname + ":" + r.port), - (n.pathname = r.pathname), - (e.parsedOrigin = r), - (e.sameOrigin = r.sameOrigin); - } - var ie = i(3738); - const { - He: oe, - bD: ae, - d3: se, - Kp: ce, - TZ: ue, - Lc: de, - uP: le, - Rz: fe, - } = ie; - class he extends v { - static featureName = (() => ue)(); - constructor(e, t) { - super( - e, - t, - ue, - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] - ); - if (!(0, p.V)(this.agentIdentifier)) - return void (0, d.x3)(this.agentIdentifier, this.featureName); - const r = this.ee; - let n; - (0, z.vC)(r), - (this.eventsEE = (0, z.um)(r)), - this.eventsEE.on(le, function (e, t) { - this.bstStart = (0, I.t)(); - }), - this.eventsEE.on(de, function (e, t) { - (0, - E.p)("bst", [e[0], t, this.bstStart, (0, I.t)()], void 0, o.K.sessionTrace, r); - }), - r.on(fe + se, function (e) { - (this.time = (0, I.t)()), - (this.startPath = location.pathname + location.hash); - }), - r.on(fe + ce, function (e) { - (0, - E.p)("bstHist", [location.pathname + location.hash, this.startPath, this.time], void 0, o.K.sessionTrace, r); - }); - try { - (n = new PerformanceObserver((e) => { - const t = e.getEntries(); - (0, E.p)(oe, [t], void 0, o.K.sessionTrace, r); - })), - n.observe({ type: ae, buffered: !0 }); - } catch (e) {} - this.importAggregator({ resourceObserver: n }); - } - } - var ge = i(2614); - class pe extends v { - static featureName = (() => t.TZ)(); - #i; - constructor(e, r) { - let n, - i = - !(arguments.length > 2 && void 0 !== arguments[2]) || - arguments[2]; - super(e, r, t.TZ, i), (this.replayRunning = !1); - try { - n = JSON.parse( - localStorage.getItem("".concat(ge.H3, "_").concat(ge.uh)) - ); - } catch (e) {} - (0, g.SR)(e) && this.ee.on(t.G4.RECORD, () => this.#o()), - this.#a(n) - ? ((this.#i = n?.sessionReplayMode), this.#s()) - : this.importAggregator(), - this.ee.on("err", (e) => { - this.replayRunning && - ((this.errorNoticed = !0), - (0, E.p)( - t.G4.ERROR_DURING_REPLAY, - [e], - void 0, - this.featureName, - this.ee - )); - }), - this.ee.on(t.G4.REPLAY_RUNNING, (e) => { - this.replayRunning = e; - }); - } - #a(e) { - return ( - (e && - (e.sessionReplayMode === ge.g.FULL || - e.sessionReplayMode === ge.g.ERROR)) || - (0, g.Aw)(this.agentIdentifier) - ); - } - #c = !1; - async #s(e) { - if (!this.#c) { - this.#c = !0; - try { - const { Recorder: t } = await Promise.all([ - i.e(478), - i.e(249), - ]).then(i.bind(i, 2496)); - (this.recorder ??= new t({ - mode: this.#i, - agentIdentifier: this.agentIdentifier, - trigger: e, - ee: this.ee, - })), - this.recorder.startRecording(), - (this.abortHandler = this.recorder.stopRecording); - } catch (e) {} - this.importAggregator({ - recorder: this.recorder, - errorNoticed: this.errorNoticed, - }); - } - } - #o() { - this.featAggregate - ? this.featAggregate.mode !== ge.g.FULL && - this.featAggregate.initializeRecording(ge.g.FULL, !0) - : ((this.#i = ge.g.FULL), - this.#s(t.Qb.API), - this.recorder && - this.recorder.parent.mode !== ge.g.FULL && - ((this.recorder.parent.mode = ge.g.FULL), - this.recorder.stopRecording(), - this.recorder.startRecording(), - (this.abortHandler = this.recorder.stopRecording))); - } - } - var me = i(3962); - class ve extends v { - static featureName = (() => me.TZ)(); - constructor(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - if ((super(e, t, me.TZ, r), !h.RI || !a.hR.MO)) return; - const n = (0, z.vC)(this.ee), - i = (0, z.um)(this.ee), - o = () => - (0, E.p)( - "newURL", - [(0, I.t)(), "" + window.location], - void 0, - this.featureName, - this.ee - ); - n.on("pushState-end", o), n.on("replaceState-end", o); - try { - this.removeOnAbort = new AbortController(); - } catch (e) {} - (0, S.sp)( - "popstate", - (e) => - (0, E.p)( - "newURL", - [e.timeStamp, "" + window.location], - void 0, - this.featureName, - this.ee - ), - !0, - this.removeOnAbort?.signal - ); - let s = !1; - const c = new a.hR.MO((e, t) => { - s || - ((s = !0), - requestAnimationFrame(() => { - (0, E.p)( - "newDom", - [(0, I.t)()], - void 0, - this.featureName, - this.ee - ), - (s = !1); - })); - }), - u = (0, m.s)( - (e) => { - (0, E.p)("newUIEvent", [e], void 0, this.featureName, this.ee), - c.observe(document.body, { - attributes: !0, - childList: !0, - subtree: !0, - characterData: !0, - }); - }, - 100, - { leading: !0 } - ); - i.on("fn-start", (e) => { - let [t] = e; - me.tC.includes(t?.type) && u(t); - }); - for (let e of me.tC) document.addEventListener(e, () => {}); - (this.abortHandler = function () { - this.removeOnAbort?.abort(), - c.disconnect(), - (this.abortHandler = void 0); - }), - this.importAggregator({ domObserver: c }); - } - } - var be = i(7378); - const { - TZ: ye, - d3: we, - Kp: Re, - $p: xe, - wW: Te, - e5: Ae, - tH: Ee, - uP: Ne, - rw: Se, - Lc: Oe, - } = be; - class Ie extends v { - static featureName = (() => ye)(); - constructor(e, t) { - var r; - if ( - (super( - e, - t, - ye, - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] - ), - (r = this), - !h.RI) - ) - return; - try { - this.removeOnAbort = new AbortController(); - } catch (e) {} - let n, - i = 0; - const o = this.ee.get("tracer"), - a = (0, z.Ri)(this.ee), - s = (0, z.o8)(this.ee), - c = (0, z.MO)(this.ee), - u = (0, z.bX)(this.ee), - d = this.ee.get("events"), - l = (0, z.NZ)(this.ee), - f = (0, z.vC)(this.ee), - g = (0, z.Ak)(this.ee); - function p(e, t) { - f.emit("newURL", ["" + window.location, t]); - } - function m() { - i++, (n = window.location.hash), (this[Ne] = (0, I.t)()); - } - function v() { - i--, window.location.hash !== n && p(0, !0); - var e = (0, I.t)(); - (this[Ae] = ~~this[Ae] + e - this[Ne]), (this[Oe] = e); - } - function b(e, t) { - e.on(t, function () { - this[t] = (0, I.t)(); - }); - } - this.ee.on(Ne, m), - s.on(Se, m), - a.on(Se, m), - this.ee.on(Oe, v), - s.on(Te, v), - a.on(Te, v), - this.ee.on("fn-err", function () { - for ( - var t = arguments.length, n = new Array(t), i = 0; - i < t; - i++ - ) - n[i] = arguments[i]; - n[2]?.__newrelic?.[e] || - (0, E.p)("function-err", [...n], void 0, r.featureName, r.ee); - }), - this.ee.buffer([Ne, Oe, "xhr-resolved"], this.featureName), - d.buffer([Ne], this.featureName), - c.buffer( - ["setTimeout" + Re, "clearTimeout" + we, Ne], - this.featureName - ), - u.buffer([Ne, "new-xhr", "send-xhr" + we], this.featureName), - l.buffer( - [Ee + we, Ee + "-done", Ee + xe + we, Ee + xe + Re], - this.featureName - ), - f.buffer(["newURL"], this.featureName), - g.buffer([Ne], this.featureName), - s.buffer( - ["propagate", Se, Te, "executor-err", "resolve" + we], - this.featureName - ), - o.buffer([Ne, "no-" + Ne], this.featureName), - a.buffer( - ["new-jsonp", "cb-start", "jsonp-error", "jsonp-end"], - this.featureName - ), - b(l, Ee + we), - b(l, Ee + "-done"), - b(a, "new-jsonp"), - b(a, "jsonp-end"), - b(a, "cb-start"), - f.on("pushState-end", p), - f.on("replaceState-end", p), - window.addEventListener( - "hashchange", - p, - (0, S.jT)(!0, this.removeOnAbort?.signal) - ), - window.addEventListener( - "load", - p, - (0, S.jT)(!0, this.removeOnAbort?.signal) - ), - window.addEventListener( - "popstate", - function () { - p(0, i > 1); - }, - (0, S.jT)(!0, this.removeOnAbort?.signal) - ), - (this.abortHandler = this.#n), - this.importAggregator(); - } - #n() { - this.removeOnAbort?.abort(), (this.abortHandler = void 0); - } - } - var _e = i(3333); - class je extends v { - static featureName = (() => _e.T)(); - constructor(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - super(e, t, _e.T, r); - [(0, a.gD)(this.agentIdentifier, "page_action.enabled")].some( - (e) => e - ) - ? this.importAggregator() - : (0, d.x3)(this.agentIdentifier, this.featureName); - } - } - var Pe = i(993), - Ce = i(3785); - class ke extends v { - static featureName = (() => Pe.TZ)(); - constructor(e, t) { - let r = - !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; - super(e, t, Pe.TZ, r); - const n = this.ee; - this.ee.on("wrap-logger-end", function (e) { - let [t] = e; - const { level: r, customAttributes: i } = this; - (0, Ce.R)(n, t, i, r); - }), - this.importAggregator(); - } - } - new (class extends n { - constructor(t, r) { - super(r), - h.gm - ? ((this.sharedAggregator = new R({ - agentIdentifier: this.agentIdentifier, - })), - (this.features = {}), - (0, A.bQ)(this.agentIdentifier, this), - (this.desiredFeatures = new Set(t.features || [])), - this.desiredFeatures.add(y), - (this.runSoftNavOverSpa = [...this.desiredFeatures].some( - (e) => e.featureName === o.K.softNav - )), - (0, u.j)(this, t, t.loaderType || "agent"), - this.run()) - : (0, e.R)(21); - } - get config() { - return { - info: this.info, - init: this.init, - loader_config: this.loader_config, - runtime: this.runtime, - }; - } - run() { - try { - const t = c(this.agentIdentifier), - r = [...this.desiredFeatures]; - r.sort((e, t) => o.P[e.featureName] - o.P[t.featureName]), - r.forEach((r) => { - if (!t[r.featureName] && r.featureName !== o.K.pageViewEvent) - return; - if (this.runSoftNavOverSpa && r.featureName === o.K.spa) return; - if (!this.runSoftNavOverSpa && r.featureName === o.K.softNav) - return; - (function (e) { - switch (e) { - case o.K.ajax: - return [o.K.jserrors]; - case o.K.sessionTrace: - return [o.K.ajax, o.K.pageViewEvent]; - case o.K.sessionReplay: - return [o.K.sessionTrace]; - case o.K.pageViewTiming: - return [o.K.pageViewEvent]; - default: - return []; - } - })(r.featureName).every((e) => e in this.features) || - (0, e.R)(36, r.featureName), - (this.features[r.featureName] = new r( - this.agentIdentifier, - this.sharedAggregator - )); - }); - } catch (t) { - (0, e.R)(22, t); - for (const e in this.features) this.features[e].abortHandler?.(); - const r = (0, A.Zm)(); - delete r.initializedAgents[this.agentIdentifier]?.api, - delete r.initializedAgents[this.agentIdentifier]?.features, - delete this.sharedAggregator; - return r.ee.get(this.agentIdentifier).abort(), !1; - } - } - })({ - features: [re, y, _, he, pe, P, U, je, ke, ve, Ie], - loaderType: "spa", - }); - })(); -})(); diff --git a/samples/dash-control.js b/samples/dash-control.js index e6ac50e..20f85a2 100644 --- a/samples/dash-control.js +++ b/samples/dash-control.js @@ -3,24 +3,24 @@ const myPlayer = document.querySelector("#myPlayer"); // Create a new instance of the player const player = new dashjs.MediaPlayer().create(); player.events = dashjs.MediaPlayer.events; -// for showing attributes of player: "https://reference.dashif.org/dash.js/v4.4.0/samples/dash-if-reference-player/index.html" - -// follow streaming protocol for high quality video to deliverd over internet. -// breaking a video down into smaller chunks and encoding each chunk at diffrent quality levels. const url = "https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd"; -//for live stream: -// const url = -// "https://refapp.hbbtv.org/videos/multiperiod_v8.php?drm=0&advert=1&emsg=0&video=v1,v2,v3&audiolang=eng,fin&sublang=eng,fin,swe&mup=2&spd=8"; -// generic sample: -// "https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd"; -//"https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd", -// const url = -// "https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd"; +/* + for live stream: + const url = "https://refapp.hbbtv.org/videos/multiperiod_v8.php?drm=0&advert=1&emsg=0&video=v1,v2,v3&audiolang=eng,fin&sublang=eng,fin,swe&mup=2&spd=8"; +*/ + +/* generic sample mpd file: + + "https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd"; +"https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd", +const url = "https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd"; + +*/ try { - player.initialize(myPlayer, url, false); + player.initialize(myPlayer, url, true); // intializing the tracker and adding events to browser agent const mediaEvents = nrvideo.Core.addTracker(new nrvideo.DashTracker(player)); @@ -71,7 +71,6 @@ try { player.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_RENDERED, function () { // console.log("Quality change completed"); loader.style.display = "none"; // Hide loader - //document.querySelector("#video-container").style.display = "block"; // Show video }); } catch (error) { nrvideo.Core.sendError({ message: error.message }); From 7caa8ca2b52be923ee8779cbbae8979c7e95476c Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Fri, 13 Sep 2024 11:03:30 +0530 Subject: [PATCH 4/8] git repository path added to package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3fe2497..d3886c8 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "repository": { "type": "git", - "url": "" + "url": "https://github.com/newrelic/video-dash-js" }, "author": "Malay Chandan", "license": "MIT", From a32bf2fcf7e8aad74cb8f6c5c122e9448b0a3177 Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Tue, 17 Sep 2024 21:34:41 +0530 Subject: [PATCH 5/8] error messages included for dash --- src/tracker.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tracker.js b/src/tracker.js index c704f86..44fb676 100644 --- a/src/tracker.js +++ b/src/tracker.js @@ -219,7 +219,8 @@ export default class DashTracker extends nrvideo.VideoTracker { } onError(e) { - this.sendError(e.detail); + console.log("Error: ", e?.error?.message); + this.sendError(e.message); } onEnded() { From 18566fecc98b606e58aa3ae052de761e48d1bca3 Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Wed, 18 Sep 2024 19:24:11 +0530 Subject: [PATCH 6/8] Readme file updated with release information --- .eslintrc | 24 ++++++++--------- CHANGELOG.md | 9 ++----- README.md | 7 +++++ package.json | 2 +- samples/dash-control.css | 7 ----- samples/dash-control.js | 3 --- samples/dash-demo.html | 56 ---------------------------------------- src/tracker.js | 41 ++--------------------------- 8 files changed, 23 insertions(+), 126 deletions(-) delete mode 100644 samples/dash-demo.html diff --git a/.eslintrc b/.eslintrc index 30673a0..6ab4e40 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,15 +1,13 @@ { - "extends": "standard", - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module" - }, - "plugins": [ - "standard" - ], - "globals": { - "newrelic": true, - "nrvideo": true, - "shaka": true - } + "extends": "standard", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module" + }, + "plugins": ["standard"], + "globals": { + "newrelic": true, + "nrvideo": true, + "dash": true + } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c977cd..dda1431 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,5 @@ # CHANGELOG -## Unreleased +## [0.1.0] - -## [0.2.0] - 2017/11/28 -### Lib -- Upgraded to use lib version `0.9.1+`. - -## [0.1.0] - -- First Version \ No newline at end of file +- First Version diff --git a/README.md b/README.md index 8c42252..d22038c 100644 --- a/README.md +++ b/README.md @@ -59,3 +59,10 @@ If you believe you have found a security vulnerability in this project or any of ## License New Relic Dash Tracker is licensed under the [Apache 2.0](http://apache.org/licenses/LICENSE-2.0.txt) License. + +## Release + +- Create a PR. +- Once approved, Update the package version according to the semver rules. +- Update the CHANGELOG in the repo (all web repos have a changelog file). +- Create a github tag with the version. diff --git a/package.json b/package.json index d3886c8..e4afe91 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "newrelic-video-dash", - "version": "0.2.0", + "version": "0.1.0", "description": "New relic tracker for dash player", "main": "src/index.js", "scripts": { diff --git a/samples/dash-control.css b/samples/dash-control.css index 1f315fe..8580cc1 100644 --- a/samples/dash-control.css +++ b/samples/dash-control.css @@ -89,10 +89,3 @@ right: 12%; cursor: pointer; } - -/* #ad-container { - position: absolute; - top: 0; - left: 0; - width: 100%; -} */ diff --git a/samples/dash-control.js b/samples/dash-control.js index 20f85a2..08f3346 100644 --- a/samples/dash-control.js +++ b/samples/dash-control.js @@ -51,8 +51,6 @@ try { document.querySelector("#qualityLevels").addEventListener("change", (e) => { const selectedQuality = e.target.value; - // document.querySelector("#video-container").style.display = "none"; // Hide video - loader.style.display = "block"; // Show loader if (selectedQuality === "auto") { @@ -69,7 +67,6 @@ try { // Hide loader when quality change completes player.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_RENDERED, function () { - // console.log("Quality change completed"); loader.style.display = "none"; // Hide loader }); } catch (error) { diff --git a/samples/dash-demo.html b/samples/dash-demo.html deleted file mode 100644 index 7a8855d..0000000 --- a/samples/dash-demo.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/tracker.js b/src/tracker.js index 44fb676..f4799e0 100644 --- a/src/tracker.js +++ b/src/tracker.js @@ -2,10 +2,6 @@ import * as nrvideo from "newrelic-video-core"; import { version } from "../package.json"; export default class DashTracker extends nrvideo.VideoTracker { - constructor(player, options) { - super(player, options); - } - setPlayer(player, tag) { if (tag && player.getVideoElement) tag = player.getVideoElement(); nrvideo.VideoTracker.prototype.setPlayer.call(this, player, tag); @@ -36,7 +32,6 @@ export default class DashTracker extends nrvideo.VideoTracker { return this.player.duration(); } - //implementing getTrack() method for dash.js getTrack() { const track = this.player.getCurrentTrackFor("audio"); return track; @@ -44,8 +39,7 @@ export default class DashTracker extends nrvideo.VideoTracker { getLanguage() { const activeTrack = this.getTrack(); - return activeTrack ? activeTrack.lang : ""; - //return this.getTrack().lang; + return activeTrack.lang ?? ""; } getDashBitrate(type) { @@ -72,13 +66,11 @@ export default class DashTracker extends nrvideo.VideoTracker { /** Override to return renidtion actual width (before re-scaling). */ getRenditionWidth() { - //return this.player.getVideoElement().clientWidth; return this.getDashBitrate("video")?.width; } /** Override to return renidtion actual height (before re-scaling). */ getRenditionHeight() { - //return this.player.getVideoElement().clientHeight; return this.getDashBitrate("video")?.height; } @@ -87,17 +79,14 @@ export default class DashTracker extends nrvideo.VideoTracker { } getPreload() { - /* Content Is Preloaded */ return this.player.preload(); } isMuted() { - /* Content Is Muted */ return this.player.isMuted(); } isAutoplayed() { - /* Content Is Autoplayed */ return this.player.getAutoPlay(); } @@ -119,44 +108,19 @@ export default class DashTracker extends nrvideo.VideoTracker { "qualityChangeRendered", ]); - /* Stream Period is activate ON_READY Event */ this.tag.on("streamInitialized", this.onReady.bind(this)); - - /* Playback meta data loaded Download Event */ this.tag.on("playbackMetaDataLoaded", this.onDownload.bind(this)); - - /* Playback loaded data Download Event */ this.tag.on("playbackLoadedData", this.onDownload.bind(this)); - - /* Playback can play Event CONTENT_REQUEST, CONTENT_START */ this.tag.on("canPlay", this.onPlay.bind(this)); - - /* CONTENT_RESUME */ this.tag.on("playbackPlaying", this.onPlaying.bind(this)); - - /* CONTENT_PAUSE */ this.tag.on("playbackPaused", this.onPause.bind(this)); - - /* CONTENT_SEEK_START */ this.tag.on("playbackSeeking", this.onSeeking.bind(this)); - - /* CONTENT_SEEK_END */ this.tag.on("playbackSeeked", this.onSeeked.bind(this)); - - /* CONTENT_ERROR */ this.tag.on("error", this.onError.bind(this)); this.tag.on("playbackError", this.onError.bind(this)); - - /* CONTENT_END */ this.tag.on("playbackEnded", this.onEnded.bind(this)); - - /* CONTENT_BUFFER_START */ this.player.on("bufferStalled", this.onBufferingStalled.bind(this)); - - /* CONTENT_BUFFER_END */ this.player.on("bufferLoaded", this.onBufferingLoaded.bind(this)); - - /* CONTENT_RENDITION_CHANGED */ this.player.on("qualityChangeRendered", this.onAdaptation.bind(this)); } @@ -194,7 +158,7 @@ export default class DashTracker extends nrvideo.VideoTracker { this.sendStart(); } - onAdaptation(e) { + onAdaptation() { this.sendRenditionChanged(); } @@ -219,7 +183,6 @@ export default class DashTracker extends nrvideo.VideoTracker { } onError(e) { - console.log("Error: ", e?.error?.message); this.sendError(e.message); } From 131aae1df8ada660a59a079773a839b088f10a73 Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Sat, 21 Sep 2024 15:29:14 +0530 Subject: [PATCH 7/8] Removed passing function getVideoElement() to tag --- src/tracker.js | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/tracker.js b/src/tracker.js index f4799e0..7ce9345 100644 --- a/src/tracker.js +++ b/src/tracker.js @@ -3,7 +3,6 @@ import { version } from "../package.json"; export default class DashTracker extends nrvideo.VideoTracker { setPlayer(player, tag) { - if (tag && player.getVideoElement) tag = player.getVideoElement(); nrvideo.VideoTracker.prototype.setPlayer.call(this, player, tag); } @@ -59,10 +58,13 @@ export default class DashTracker extends nrvideo.VideoTracker { return currentBitrate?.bitrate; } + /* + Not able to find any field to show renditionName getRenditionName() { let qlty = this.getDashBitrate("video"); return qlty?.label; } + */ /** Override to return renidtion actual width (before re-scaling). */ getRenditionWidth() { @@ -108,34 +110,34 @@ export default class DashTracker extends nrvideo.VideoTracker { "qualityChangeRendered", ]); - this.tag.on("streamInitialized", this.onReady.bind(this)); - this.tag.on("playbackMetaDataLoaded", this.onDownload.bind(this)); - this.tag.on("playbackLoadedData", this.onDownload.bind(this)); - this.tag.on("canPlay", this.onPlay.bind(this)); - this.tag.on("playbackPlaying", this.onPlaying.bind(this)); - this.tag.on("playbackPaused", this.onPause.bind(this)); - this.tag.on("playbackSeeking", this.onSeeking.bind(this)); - this.tag.on("playbackSeeked", this.onSeeked.bind(this)); - this.tag.on("error", this.onError.bind(this)); - this.tag.on("playbackError", this.onError.bind(this)); - this.tag.on("playbackEnded", this.onEnded.bind(this)); + this.player.on("streamInitialized", this.onReady.bind(this)); + this.player.on("playbackMetaDataLoaded", this.onDownload.bind(this)); + this.player.on("playbackLoadedData", this.onDownload.bind(this)); + this.player.on("canPlay", this.onPlay.bind(this)); + this.player.on("playbackPlaying", this.onPlaying.bind(this)); + this.player.on("playbackPaused", this.onPause.bind(this)); + this.player.on("playbackSeeking", this.onSeeking.bind(this)); + this.player.on("playbackSeeked", this.onSeeked.bind(this)); + this.player.on("error", this.onError.bind(this)); + this.player.on("playbackError", this.onError.bind(this)); + this.player.on("playbackEnded", this.onEnded.bind(this)); this.player.on("bufferStalled", this.onBufferingStalled.bind(this)); this.player.on("bufferLoaded", this.onBufferingLoaded.bind(this)); this.player.on("qualityChangeRendered", this.onAdaptation.bind(this)); } unregisterListeners() { - this.tag.off("streamInitialized", this.onReady); - this.tag.off("playbackMetaDataLoaded", this.onDownload); - this.tag.off("playbackLoadedData", this.onDownload); - this.tag.off("canPlay", this.onPlay); - this.tag.off("playbackPlaying", this.onPlaying); - this.tag.off("playbackPaused", this.onPause); - this.tag.off("playbackSeeking", this.onSeeking); - this.tag.off("playbackSeeked", this.onSeeked); - this.tag.off("playbackError", this.onError); - this.tag.off("error", this.onError); - this.tag.off("playbackEnded", this.onEnded); + this.player.off("streamInitialized", this.onReady); + this.player.off("playbackMetaDataLoaded", this.onDownload); + this.player.off("playbackLoadedData", this.onDownload); + this.player.off("canPlay", this.onPlay); + this.player.off("playbackPlaying", this.onPlaying); + this.player.off("playbackPaused", this.onPause); + this.player.off("playbackSeeking", this.onSeeking); + this.player.off("playbackSeeked", this.onSeeked); + this.player.off("playbackError", this.onError); + this.player.off("error", this.onError); + this.player.off("playbackEnded", this.onEnded); this.player.off("bufferStalled", this.onBufferingStalled); this.player.off("bufferLoaded", this.onBufferingLoaded); this.player.off("qualityChangeRendered", this.onAdaptation); From a7164e1a64c7c63db2364f50753102b775320d32 Mon Sep 17 00:00:00 2001 From: mlychndnnr Date: Mon, 23 Sep 2024 14:39:05 +0530 Subject: [PATCH 8/8] error message added for tracker --- src/tracker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tracker.js b/src/tracker.js index 7ce9345..a4dac56 100644 --- a/src/tracker.js +++ b/src/tracker.js @@ -185,7 +185,7 @@ export default class DashTracker extends nrvideo.VideoTracker { } onError(e) { - this.sendError(e.message); + this.sendError(e.error.message); } onEnded() {