From 6daf7007d0448965a9a62835d603d8423ad4e1e6 Mon Sep 17 00:00:00 2001 From: David J Birnbaum <djbpitt@gmail.com> Date: Wed, 13 Jul 2022 14:12:53 -0400 Subject: [PATCH] 'chore(init): scaffolding by Yeoman' --- .gitattributes | 2 + .github/CONTRIBUTING.md | 29 + .github/ISSUE_TEMPLATE/bug_report.md | 20 + .github/ISSUE_TEMPLATE/feature_request.md | 14 + .github/pull_request_template.md | 5 + .github/workflows/exist.yml | 97 + .gitignore | 165 + LICENSE | 21 + README.md | 100 + build.xml | 24 + cypress.config.js | 16 + expath-pkg.xml | 7 + icon.png | Bin 0 -> 38428 bytes package-lock.json | 4904 +++++++++++++++++++++ package.json | 41 + post-install.xq | 17 + pre-install.xq | 35 + repo.xml | 14 + test/cypress/e2e/landing.cy.js | 9 + test/cypress/fixtures/example.json | 5 + test/cypress/support/commands.js | 25 + test/cypress/support/e2e.js | 20 + test/mocha/app_spec.js | 193 + test/mocha/rest_spec.js | 42 + test/xqs/test-runner.xq | 18 + test/xqs/test-suite.xqm | 21 + test/xqs/xqSuite.js | 104 + 27 files changed, 5948 insertions(+) create mode 100644 .gitattributes create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/exist.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build.xml create mode 100644 cypress.config.js create mode 100644 expath-pkg.xml create mode 100644 icon.png create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 post-install.xq create mode 100755 pre-install.xq create mode 100644 repo.xml create mode 100644 test/cypress/e2e/landing.cy.js create mode 100644 test/cypress/fixtures/example.json create mode 100644 test/cypress/support/commands.js create mode 100644 test/cypress/support/e2e.js create mode 100644 test/mocha/app_spec.js create mode 100644 test/mocha/rest_spec.js create mode 100644 test/xqs/test-runner.xq create mode 100644 test/xqs/test-suite.xqm create mode 100644 test/xqs/xqSuite.js diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..3e252d6 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Contributing + +:balloon: First off, thank you for considering contributing to 04-index. :balloon: + +All pull-requests are welcome. File a bug report, fix a typo, improve the documentation, or add a new feature. All are helpful, and make 04-index better. + +Please have a quick look at these guidelines to help both you and the developers to keep things moving smoothly. + +## Basic Conduct + +* Please be respectful when discussing changes and issues. Consider that not everyone's first language is english. +* Create an issue for any major changes and enhancements that you wish to make. + +If this is your first time contributing to a project you might want to take a look [here](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github). + +## Getting started +1. Create your own fork of the code. + +2. Do the changes in your fork. + * Minor changes that don't impact code functionality (typos, inline comments, … ) can be done in the master branch. + * Functional changes should be collected in their own branch. + +3. If you like the change and think the project could use it: + * Open a pull request referencing the issue describing the new feature in the comment section \([how-to](https://github.com/blog/1506-closing-issues-via-pull-requests)\). + +Once your pull request has been reviewed it will be merged. You can greatly help the reviewer by: +* sticking to one feature per pull request. +* use [meaningful](https://chris.beams.io/posts/git-commit/) commit messages inside your feature branch. +* filling out the pull request & issue templates. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..f965e30 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,20 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG]" +labels: '' +assignees: '' + +--- + +### Expected behavior + +### Actual behavior + +### Reproduction steps + +### Please provide the following +* Java Version: +* exist-db version: +* 04-index version: +* OS version: diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..a0f58d7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,14 @@ +--- +name: Feature request +about: Suggest an idea +title: '' +labels: enhancement +assignees: '' + +--- + +### Your Ideal Solution + +### Any Alternative Options + +### Additional Context \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..c1b5dc0 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,5 @@ +### Thank you for your Pull Request + +If you're adding a new feature, please adjust / add tests covering your code changes. You can reference any related issues below. + +Fixes # diff --git a/.github/workflows/exist.yml b/.github/workflows/exist.yml new file mode 100644 index 0000000..e3e5f11 --- /dev/null +++ b/.github/workflows/exist.yml @@ -0,0 +1,97 @@ +# This workflow builds a xar archive, deploys it into exist and execute its test suites. +# It also includes code for using semantic-release to upload packages as part of GitHub releases +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: exist-db CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + exist-version: [latest, release] + java-version: [8] + node-version: ['14', '16'] + # TODO: see #563 could still be usefull for gulp builds + # services: + # # Label used to access the service container + # exist: + # image: existdb/existdb:${{ matrix.exist-version}} + # ports: + # - 8080:8080 + + steps: + # Checkout code + - uses: actions/checkout@v2 + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + # Build Frontend + - name: Build Frontend Using Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + + # Build Expath Package + # TODO: #563 make optional for gulp builds + - name: Build Expath Package + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.java-version }} + - run: ant + + # Deploy Package in Container + - name: Pull Base Image + run: docker pull existdb/existdb:${{ matrix.exist-version }} + + - name: Create CI Container + run: docker create --name exist-ci -p 8080:8080 existdb/existdb:${{ matrix.exist-version }} + + - name: Prep CI Container + run: docker cp ./build/*-dev.xar exist-ci:exist/autodeploy + + - name: Start Exist Container + run: docker start exist-ci && sleep 30 + + # Testing + - name: Run Unit Tests + run: npm test + + - name: Run Integration Tests + run: npm run cypress + + # TODO: Add upload to dockerhub + # release: + # name: Release + # runs-on: ubuntu-latest + # needs: build + # if: github.ref == 'refs/heads/main' + # steps: + # - name: Checkout + # uses: actions/checkout@v2 + # with: + # fetch-depth: 0 + # - name: Setup Node.js + # uses: actions/setup-node@v2 + # with: + # node-version: 14 + # cache: 'npm' + # - name: Install dependencies + # run: npm ci + # - name: Create package + # run: npm run build + # - name: Release + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: npx semantic-release + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8ed375 --- /dev/null +++ b/.gitignore @@ -0,0 +1,165 @@ +# ========================= +# Operating System Files +# ========================= + +# Windows image file caches + Thumbs.db + ehthumbs.db + +# Folder config file + Desktop.ini + +# Recycle Bin used on file shares + $RECYCLE.BIN/ + +# Windows Installer files + *.cab + *.msi + *.msm + *.msp + +# Windows shortcuts + *.lnk + +# ========================= +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# ========================= +# Files that might appear in the root of a volume +# ========================= + +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +# Network Trash Folder +Temporary Items +.apdisk + + +# ========================= +# Application Files +# ========================= + +~$*.xlsx +.~lock* + +# ========================= +# exist-db specific files +# ========================= + +*.xar +.existdb.json +query-results + +# ========================= +# other +# ========================= +.env +.yo-rc.json +node_modules/ +coverage/ +build/ +bower_components/ +reports/ + +# ========================= +# tei-pub (gulp) +# ========================= +webtest/bin +webtest/reports +webtest/errorShots + +############################## +## Java +############################## +.mtj.tmp/ +*.class +*.jar +*.war +*.ear +*.nar +hs_err_pid* + +############################## +## Maven +############################## +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +pom.xml.bak +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar + +############################## +## Gradle +############################## +bin/ +build/ +.gradle +.gradletasknamecache +gradle-app.setting +!gradle-wrapper.jar + +############################## +## IntelliJ +############################## +out/ +.idea/ +.idea_modules/ +*.iml +*.ipr +*.iws + +############################## +## Eclipse +############################## +.settings/ +bin/ +tmp/ +.metadata +.classpath +.project +*.tmp +*.bak +*.swp +*~.nib +local.properties +.loadpath +.factorypath + +############################## +## NetBeans +############################## +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +nbactions.xml +nb-configuration.xml + +############################## +## Visual Studio Code +############################## +.vscode/ +*.code-workspace diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bc99de0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 djbpitt <djbpitt@gmail.com> (http://www.obdurodon.org) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..962c5b8 --- /dev/null +++ b/README.md @@ -0,0 +1,100 @@ +# 04-index + +[![License][license-img]][license-url] +[![GitHub release][release-img]][release-url] + + +<img src="icon.png" align="left" width="25%"/> + +My amazing 04-index application + +## Requirements + +* [exist-db](http://exist-db.org/exist/apps/homepage/index.html) version: `5.3` or greater + +* [ant](http://ant.apache.org) version: `1.10.12` \(for building from source\) + +* [node](http://nodejs.org) version: `14.x` \(for building from source\) + + +## Installation + +1. Download the `04-index-1.0.0.xar` file from GitHub [releases](https://github.com/djbpitt/04-index/releases) page. + +2. Open the [dashboard](http://localhost:8080/exist/apps/dashboard/index.html) of your eXist-db instance and click on `package manager`. + + 1. Click on the `add package` symbol in the upper left corner and select the `.xar` file you just downloaded. + +3. You have successfully installed 04-index into exist. + +### Building from source + +1. Download, fork or clone this GitHub repository +2. There are two default build targets in `build.xml`: + * `dev` including *all* files from the source folder including those with potentially sensitive information. + + * `deploy` is the official release. It excludes files necessary for development but that have no effect upon deployment. + +3. Calling `ant`in your CLI will build both files: + +```bash +cd 04-index +ant +``` + + 1. to only build a specific target call either `dev` or `deploy` like this: + ```bash + ant dev + ``` + +If you see `BUILD SUCCESSFUL` ant has generated a `04-index-1.0.0.xar` file in the `build/` folder. To install it, follow the instructions [above](#installation). + + + +## Running Tests + +To run tests locally your app needs to be installed in a running exist-db instance at the default port `8080` and with the default dba user `admin` with the default empty password. + +A quick way to set this up for docker users is to simply issue: + +```bash +docker run -dit -p 8080:8080 existdb/existdb:release +``` + +After you finished installing the application, you can run the full testsuite locally. + +### Unit-tests + +This app uses [mochajs](https://mochajs.org) as a test-runner. To run both xquery and javascript unit-tests type: + +```bash +npm test +``` + +### Integration-tests + +This app uses [cypress](https://www.cypress.io) for integration tests, just type: + +```bash +npm run cypress +``` + +Alternatively, use npx: + +```bash +npx cypress open +``` + + +## Contributing + +You can take a look at the [Contribution guidelines for this project](.github/CONTRIBUTING.md) + +## License + +MIT © [djbpitt](http://www.obdurodon.org) + +[license-img]: https://img.shields.io/badge/license-MIT-blue.svg +[license-url]: https://opensource.org/licenses/MIT +[release-img]: https://img.shields.io/badge/release-1.0.0-green.svg +[release-url]: https://github.com/djbpitt/04-index/releases/latest diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..27f9eea --- /dev/null +++ b/build.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project default="all" name="04-index"> + <description>My amazing 04-index application</description> + <xmlproperty file="expath-pkg.xml" /> + <property name="project.version" value="${package(version)}" /> + <property name="project.app" value="04-index" /> + <property name="build.dir" value="build" /> + <!-- Start it --> + <target name="init" description="create build directory"> + <tstamp /> + <mkdir dir="${build.dir}" /> + </target> + <!-- Dev build (includes everything unoptimized) --> + <target name="dev" depends="init" description="compile all source files"> + <zip basedir="." destfile="${build.dir}/${project.app}-${project.version}-dev.xar" excludes="**/${build.dir}/**, **/node_modules/**" /> + </target> + <!-- Release build --> + <target name="deploy" depends="init" description="compile release build"> + <zip basedir="." destfile="${build.dir}/${project.app}-${project.version}.xar" excludes="**/${build.dir}/**, .existdb.json, .yo-rc.json, **/node_modules/**, **/reports/**, README.md, **/.git*/** " /> + </target> + <target name="all" depends="dev, deploy"> + <tstamp /> + </target> +</project> diff --git a/cypress.config.js b/cypress.config.js new file mode 100644 index 0000000..786c69d --- /dev/null +++ b/cypress.config.js @@ -0,0 +1,16 @@ +const { defineConfig } = require('cypress') + +module.exports = defineConfig({ + screenshotsFolder: 'reports/screenshots', + videosFolder: 'reports/videos', + fixturesFolder: 'test/cypress/fixtures', + e2e: { + setupNodeEvents (on, config) { + // implement node event listeners here + }, + baseUrl: 'http://localhost:8080', + includeShadowDom: true, + specPattern: 'test/cypress/e2e/**/*.cy.{js,jsx,ts,tsx}', + supportFile: 'test/cypress/support/e2e.js' + } +}) diff --git a/expath-pkg.xml b/expath-pkg.xml new file mode 100644 index 0000000..971097c --- /dev/null +++ b/expath-pkg.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package + xmlns="http://expath.org/ns/pkg" name="http://www.obdurodon.org/hoax/apps/04-index" + abbrev="04-index" version="1.0.0" spec="1.0"> + <title>My amazing 04-index application</title> + <dependency processor="http://exist-db.org" semver-min="5.3.0"/> +</package> diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..92f4ac22cd49703d290d7381329fc6e72e2c45d4 GIT binary patch literal 38428 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..120d467 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4904 @@ +{ + "name": "04-index", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "04-index", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "chai": "^4.3.6", + "chai-xml": "^0.4.0", + "cypress": "^10.0.2", + "fs-extra": "^10.1.0", + "mocha": "^10.0.0", + "supertest": "^6.2.3", + "xmldoc": "^1.1.2", + "yeoman-assert": "^3.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "2.88.10", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", + "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@cypress/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==", + "dev": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-xml": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chai-xml/-/chai-xml-0.4.0.tgz", + "integrity": "sha512-VjFPW64Hcp9CuuZbAC26cBWi+DPhyWOW8yxNpfQX3W+jQLPJxN/sm5FAaW+FOKTzsNeIFQpt5yhGbZA5s/pEyg==", + "dev": true, + "dependencies": { + "xml2js": "^0.4.23" + }, + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "chai": ">=1.10.0 " + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cypress": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.0.2.tgz", + "integrity": "sha512-7+C4KHYBcfZrawss+Gt5PlS35rfc6ySc59JcHDVsIMm1E/J35dqE41UEXpdtwIq3549umCerNWnFADzqib4kcA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.6", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/cypress/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==", + "dev": true + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "dependencies": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/formidable/node_modules/qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "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, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/listr2": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.2.tgz", + "integrity": "sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^1.4.0", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.7", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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, + "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, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "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, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "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" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "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 + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.6.tgz", + "integrity": "sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/supertest": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.3.tgz", + "integrity": "sha512-3GSdMYTMItzsSYjnIcljxMVZKPW1J9kYHZY+7yLfD0wpPwww97GeImZC1oOk0S5+wYl2niJwuFusBJqwLqYM3g==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^7.1.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "dev": true, + "dependencies": { + "sax": "^1.2.1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yeoman-assert": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yeoman-assert/-/yeoman-assert-3.1.1.tgz", + "integrity": "sha512-bCuLb/j/WzpvrJZCTdJJLFzm7KK8IYQJ3+dF9dYtNs2CUYyezFJDuULiZ2neM4eqjf45GN1KH/MzCTT3i90wUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@cypress/request": { + "version": "2.88.10", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", + "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + } + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@types/node": { + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==", + "dev": true + }, + "@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, + "@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "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, + "requires": { + "type-fest": "^0.21.3" + } + }, + "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 + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "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 + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chai-xml": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chai-xml/-/chai-xml-0.4.0.tgz", + "integrity": "sha512-VjFPW64Hcp9CuuZbAC26cBWi+DPhyWOW8yxNpfQX3W+jQLPJxN/sm5FAaW+FOKTzsNeIFQpt5yhGbZA5s/pEyg==", + "dev": true, + "requires": { + "xml2js": "^0.4.23" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + } + }, + "ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "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, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cypress": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.0.2.tgz", + "integrity": "sha512-7+C4KHYBcfZrawss+Gt5PlS35rfc6ySc59JcHDVsIMm1E/J35dqE41UEXpdtwIq3549umCerNWnFADzqib4kcA==", + "dev": true, + "requires": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.6", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "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 + } + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "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 + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eventemitter2": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz", + "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==", + "dev": true + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "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 + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "requires": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "dependencies": { + "qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true + } + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "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 + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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 + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "requires": { + "async": "^3.2.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "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, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "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, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "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 + }, + "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 + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "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, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "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 + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "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 + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, + "listr2": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.2.tgz", + "integrity": "sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^1.4.0", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.7", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "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 + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "mime-db": "1.52.0" + } + }, + "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 + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "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, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, + "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, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "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 + }, + "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 + }, + "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 + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "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 + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "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, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "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 + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "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 + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "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 + }, + "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 + }, + "superagent": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.6.tgz", + "integrity": "sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + } + }, + "supertest": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.3.tgz", + "integrity": "sha512-3GSdMYTMItzsSYjnIcljxMVZKPW1J9kYHZY+7yLfD0wpPwww97GeImZC1oOk0S5+wYl2niJwuFusBJqwLqYM3g==", + "dev": true, + "requires": { + "methods": "^1.1.2", + "superagent": "^7.1.3" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "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 + }, + "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 + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "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 + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "dev": true, + "requires": { + "sax": "^1.2.1" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yeoman-assert": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yeoman-assert/-/yeoman-assert-3.1.1.tgz", + "integrity": "sha512-bCuLb/j/WzpvrJZCTdJJLFzm7KK8IYQJ3+dF9dYtNs2CUYyezFJDuULiZ2neM4eqjf45GN1KH/MzCTT3i90wUQ==", + "dev": true + }, + "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 + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c708bb2 --- /dev/null +++ b/package.json @@ -0,0 +1,41 @@ +{ + "name": "04-index", + "version": "1.0.0", + "description": "My amazing 04-index application", + "homepage": "https://github.com/djbpitt/04-index#readme", + "bugs": "https://github.com/djbpitt/04-index/issues", + "engines": { + "node": ">=14.0.0" + }, + "keywords": [ + "exist", + "exist-db", + "xml", + "xql", + "xquery" + ], + "author": { + "name": "djbpitt", + "email": "djbpitt@gmail.com" + }, + "license": "MIT", + "scripts": { + "test": "mocha test/mocha/ --recursive --exit && mocha test/xqs/*.js", + "cypress": "cypress run" + }, + "repository": { + "type": "git", + "url": "https://github.com/djbpitt/04-index", + "license": "MIT" + }, + "devDependencies": { + "chai": "^4.3.6", + "chai-xml": "^0.4.0", + "cypress": "^10.0.2", + "fs-extra": "^10.1.0", + "mocha": "^10.0.0", + "supertest": "^6.2.3", + "xmldoc": "^1.1.2", + "yeoman-assert": "^3.1.1" + } +} diff --git a/post-install.xq b/post-install.xq new file mode 100644 index 0000000..f1f6a07 --- /dev/null +++ b/post-install.xq @@ -0,0 +1,17 @@ +xquery version "3.1"; +(:~ The post-install runs after contents are copied to db. + : + : @version 1.0.0 + :) +declare namespace repo="http://exist-db.org/xquery/repo"; + +(: The following external variables are set by the repo:deploy function :) + +(: file path pointing to the exist installation directory :) +declare variable $home external; +(: path to the directory containing the unpacked .xar package :) +declare variable $dir external; +(: the target collection into which the app is deployed :) +declare variable $target external; + +1 + 1 diff --git a/pre-install.xq b/pre-install.xq new file mode 100755 index 0000000..2c9c1db --- /dev/null +++ b/pre-install.xq @@ -0,0 +1,35 @@ +xquery version "1.0"; +(:~ The pre-install runs before the actual install and deploy. + : + : @version 1.0.0 + :) +import module namespace xdb="http://exist-db.org/xquery/xmldb"; + +(: The following external variables are set by the repo:deploy function :) + +(: file path pointing to the exist installation directory :) +declare variable $home external; +(: path to the directory containing the unpacked .xar package :) +declare variable $dir external; +(: the target collection into which the app is deployed :) +declare variable $target external; + +declare function local:mkcol-recursive($collection, $components) { + if (exists($components)) then + let $newColl := concat($collection, "/", $components[1]) + return ( + xdb:create-collection($collection, $components[1]), + local:mkcol-recursive($newColl, subsequence($components, 2)) + ) + else + () +}; + +(: Helper function to recursively create a collection hierarchy. :) +declare function local:mkcol($collection, $path) { + local:mkcol-recursive($collection, tokenize($path, "/")) +}; + +(: store the collection configuration :) +local:mkcol("/db/system/config", $target), +xdb:store-files-from-pattern(concat("/db/system/config", $target), $dir, "*.xconf") diff --git a/repo.xml b/repo.xml new file mode 100644 index 0000000..68ac6c8 --- /dev/null +++ b/repo.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<meta + xmlns="http://exist-db.org/xquery/repo"> + <description>My amazing 04-index application</description> + <author>djbpitt</author> + <website>http://www.obdurodon.org</website> + <status>alpha</status> + <license>MIT</license> + <copyright>true</copyright> + <type>application</type> + <target>04-index</target> + <prepare>pre-install.xq</prepare> + <finish>post-install.xq</finish> +</meta> diff --git a/test/cypress/e2e/landing.cy.js b/test/cypress/e2e/landing.cy.js new file mode 100644 index 0000000..c4de610 --- /dev/null +++ b/test/cypress/e2e/landing.cy.js @@ -0,0 +1,9 @@ +/* global cy */ +describe('The landing page', function () { + it.skip ('should load ', function () { + cy.visit('/exist/apps/04-index/index.html') + .get('.alert') + .contains('app.xqm') + }) + +}) diff --git a/test/cypress/fixtures/example.json b/test/cypress/fixtures/example.json new file mode 100644 index 0000000..da18d93 --- /dev/null +++ b/test/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} \ No newline at end of file diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js new file mode 100644 index 0000000..119ab03 --- /dev/null +++ b/test/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) diff --git a/test/cypress/support/e2e.js b/test/cypress/support/e2e.js new file mode 100644 index 0000000..d1dd135 --- /dev/null +++ b/test/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/test/mocha/app_spec.js b/test/mocha/app_spec.js new file mode 100644 index 0000000..5240588 --- /dev/null +++ b/test/mocha/app_spec.js @@ -0,0 +1,193 @@ +/* eslint-disable no-var */ +'use strict' + +const chai = require('chai') +const chaiXml = require('chai-xml') +const expect = require('chai').expect +const fs = require('fs-extra') +const glob = require('glob') +const xmldoc = require('xmldoc') +const assert = require('yeoman-assert') + +// this is not equivalent to using a real xml parser +describe('file system checks', function () { + describe('markup files are well-formed', function () { + chai.use(chaiXml) + it('*.html is xhtml', function (done) { + glob('**/*.html', { ignore: 'node_modules/**' }, function (err, files) { + if (err) throw err + // console.log(files) + files.forEach(function (html) { + const xhtml = fs.readFileSync(html, 'utf8') + const hParsed = new xmldoc.XmlDocument(xhtml).toString() + expect(hParsed).xml.to.be.valid() + }) + }) + done() + }) + + it('*.xml', function (done) { + glob('**/*.xml', { ignore: 'node_modules/**' }, function (err, files) { + if (err) throw err + // console.log(files) + files.forEach(function (xmls) { + const xml = fs.readFileSync(xmls, 'utf8') + const xParsed = new xmldoc.XmlDocument(xml).toString() + expect(xParsed).xml.to.be.valid() + }) + }) + done() + }) + + it('*.xconf', function (done) { + glob('**/*.xconf', { ignore: 'node_modules/**' }, function (err, files) { + if (err) throw err + // console.log(files) + files.forEach(function (xconfs) { + const xconf = fs.readFileSync(xconfs, 'utf8') + const cParsed = new xmldoc.XmlDocument(xconf).toString() + expect(cParsed).xml.to.be.valid() + }) + }) + done() + }) + it('*.odd', function (done) { + this.slow(1000) + glob('**/*.odd', { ignore: 'node_modules/**' }, function (err, files) { + if (err) throw err + // console.log(files) + files.forEach(function (odds) { + const odd = fs.readFileSync(odds, 'utf8') + const xParsed = new xmldoc.XmlDocument(odd).toString() + expect(xParsed).xml.to.be.valid() + }) + }) + done() + }) + }) + + describe('Consistent data in aux files', function () { + it('should contain identical descriptions', function (done) { + if (fs.existsSync('build.xml')) { + const build = fs.readFileSync('build.xml', 'utf8') + const parsed = new xmldoc.XmlDocument(build) + var buildDesc = parsed.childNamed('description').val + } + + if (fs.existsSync('package.json')) { + const pkg = fs.readFileSync('package.json', 'utf8') + const parsed = JSON.parse(pkg) + var pkgDesc = parsed.description + } + + if (fs.existsSync('repo.xml')) { + const repo = fs.readFileSync('repo.xml', 'utf8') + const parsed = new xmldoc.XmlDocument(repo) + var repoDesc = parsed.childNamed('description').val + } + + if (fs.existsSync('expath-pkg.xml')) { + const exPkg = fs.readFileSync('expath-pkg.xml', 'utf8') + const parsed = new xmldoc.XmlDocument(exPkg) + var exPkgDesc = parsed.childNamed('title').val + } + + const desc = [exPkgDesc, buildDesc, pkgDesc, repoDesc, buildDesc].filter(Boolean) + let i = 0 + // console.log(desc) + desc.forEach(function () { + expect(desc[i]).to.equal(exPkgDesc) + i++ + }) + done() + }) + + it('should contain identical versions', function (done) { + if (fs.existsSync('package.json')) { + const pkg = fs.readFileSync('package.json', 'utf8') + const parsed = JSON.parse(pkg) + var pkgVer = parsed.version + } + + if (fs.existsSync('expath-pkg.xml')) { + const exPkg = fs.readFileSync('expath-pkg.xml', 'utf8') + const parsed = new xmldoc.XmlDocument(exPkg) + var exPkgVer = parsed.attr.version + } + + const vers = [exPkgVer, pkgVer].filter(Boolean) + let i = 0 + // console.log(vers) + vers.forEach(function () { + expect(vers[i]).to.equal(exPkgVer) + i++ + }) + done() + }) + + it('should contain identical licenses', function (done) { + if (fs.existsSync('package.json')) { + const pkg = fs.readFileSync('package.json', 'utf8') + const parsed = JSON.parse(pkg) + var pkgLic = parsed.license + } + + if (fs.existsSync('repo.xml')) { + const exRepo = fs.readFileSync('repo.xml', 'utf8') + const parsed = new xmldoc.XmlDocument(exRepo) + var repoLic = parsed.childNamed('license').val + } + + const lic = [repoLic, pkgLic].filter(Boolean) + let i = 0 + // console.log(lic) + lic.forEach(function () { + expect(lic[i]).to.equal(pkgLic) + i++ + }) + done() + }) + + it('should contain identical titles', function (done) { + if (fs.existsSync('build.xml')) { + const build = fs.readFileSync('build.xml', 'utf8') + const parsed = new xmldoc.XmlDocument(build) + var buildTit = parsed.attr.name.toLowerCase() + } + + if (fs.existsSync('package.json')) { + const pkg = fs.readFileSync('package.json', 'utf8') + const parsed = JSON.parse(pkg) + var pkgTitle = parsed.name + } + + if (fs.existsSync('templates/page.html')) { + const page = fs.readFileSync('templates/page.html', 'utf8') + const parsed = new xmldoc.XmlDocument(page) + var pageTitle = parsed.descendantWithPath('head.title').val + } + + const titles = [buildTit, pkgTitle, pageTitle].filter(Boolean) + let i = 0 + + // console.log(titles) + titles.forEach(function () { + expect(titles[i]).to.equal(pkgTitle) + i++ + }) + done() + }) + + it('Readme should have latest meta-data', function (done) { + const pkg = fs.readFileSync('package.json', 'utf8') + const parsed = JSON.parse(pkg) + + if (fs.existsSync('README.md')) { + assert.fileContent('README.md', '# ' + parsed.name) + assert.fileContent('README.md', parsed.version) + assert.fileContent('README.md', parsed.description) + } else { this.skip() } + done() + }) + }) +}) diff --git a/test/mocha/rest_spec.js b/test/mocha/rest_spec.js new file mode 100644 index 0000000..7c237bf --- /dev/null +++ b/test/mocha/rest_spec.js @@ -0,0 +1,42 @@ +'use strict' + +const supertest = require('supertest') +const expect = require('chai').expect + +let client = supertest.agent('http://localhost:8080') + +describe('rest api returns', function () { + it('404 from random page', function (done) { + this.timeout(10000) + client + .get('/random') + .expect(404) + .end(function (err, res) { + expect(res.status).to.equal(404) + if (err) return done(err) + done() + }) + }) + + it('200 from default rest endpoint', function (done) { + client + .get('/exist/rest/db/') + .expect(200) + .end(function (err, res) { + expect(res.status).to.equal(200) + if (err) return done(err) + done() + }) + }) + + it.skip('file index.html exists in application root', function (done) { + client + .get('/exist/rest/db/apps/04-index/index.html') + .expect(200) + .end(function (err, res) { + expect(res.status).to.equal(200) + if (err) return done(err) + done() + }) + }) + }) \ No newline at end of file diff --git a/test/xqs/test-runner.xq b/test/xqs/test-runner.xq new file mode 100644 index 0000000..ea48f24 --- /dev/null +++ b/test/xqs/test-runner.xq @@ -0,0 +1,18 @@ +xquery version "3.1"; + +(:~ This library runs the XQSuite unit tests for the 04-index app. + : + : @author djbpitt + : @version 1.0.0 + : @see http://www.exist-db.org/exist/apps/doc/xqsuite + :) +import module namespace test="http://exist-db.org/xquery/xqsuite" at "resource:org/exist/xquery/lib/xqsuite/xqsuite.xql"; +import module namespace tests="http://www.obdurodon.org/hoax/apps/04-index/tests" at "test-suite.xqm"; + +declare namespace output="http://www.w3.org/2010/xslt-xquery-serialization"; +declare option output:method "json"; +declare option output:media-type "application/json"; + +test:suite( + inspect:module-functions(xs:anyURI("test-suite.xqm")) +) diff --git a/test/xqs/test-suite.xqm b/test/xqs/test-suite.xqm new file mode 100644 index 0000000..f0fe5e8 --- /dev/null +++ b/test/xqs/test-suite.xqm @@ -0,0 +1,21 @@ +xquery version "3.1"; + +(:~ This library module contains XQSuite tests for the 04-index app. + : + : @author djbpitt + : @version 1.0.0 + : @see http://www.obdurodon.org + :) + +module namespace tests = "http://www.obdurodon.org/hoax/apps/04-index/tests"; + +declare namespace test="http://exist-db.org/xquery/xqsuite"; + + + +declare + %test:name('one-is-one') + %test:assertTrue + function tests:tautology() { + 1 = 1 +}; diff --git a/test/xqs/xqSuite.js b/test/xqs/xqSuite.js new file mode 100644 index 0000000..52e3d42 --- /dev/null +++ b/test/xqs/xqSuite.js @@ -0,0 +1,104 @@ +'use strict' + +const Mocha = require('mocha') +const http = require('http') +const expect = require('chai').expect +const xmldoc = require('xmldoc') + + +// Dynamically generate a mocha testsuite for xqsuite tests. Requires its own process, hence && in package.json +let Test = Mocha.Test + + let url = 'http://localhost:8080/exist/rest/db/apps/04-index/test/xqs/test-runner.xq' + +http.get(url, (res) => { + let data = '' + + // called when a data chunk is received. + res.on('data', (chunk) => { + data += chunk + }) + + // called when the complete response is received. + res.on('end', () => { + // NOTE(DP): XQTS errors on testsuite, will be returned as application/xml + // The initial check will display the XQTS error, and run the test suite otherwise + // see #800 + if (res.headers['content-type'].includes("application/json")) { + let xqsReport = JSON.parse(data) + let xqsPkg = xqsReport.testsuite.package + let xqstCount = xqsReport.testsuite.tests + let xqstCase = xqsReport.testsuite.testcase + + // TODO(DP): get rid of first "0 passing message" + + let mochaInstance = new Mocha() + + if (Array.isArray(xqsReport.testsuite)) { + let xqsSuites = xqsReport.testsuite + console.warn('support for multiple testsuites per run is experimental') + xqsSuites.forEach((entry) => { + xqsTests(mochaInstance, entry.package, entry.tests, entry.testcase) + }) + } else { + xqsTests(mochaInstance, xqsPkg, xqstCount, xqstCase) + } + // enable repeated runs + // see https://github.com/mochajs/mocha/issues/995 + // see https://mochajs.org/api/mocha#unloadFiles + let suiteRun = mochaInstance.cleanReferencesAfterRun(true).run() + process.on('exit', () => { + process.exit(suiteRun.stats.failures > 0) + }) + } + else { + try { let doc = new xmldoc.XmlDocument(data) + throw new Error(doc.childNamed("message").val) } + catch (e) { console.log(e.message) } + } + }) +}).on('error', (err) => { + console.log('Error: ', err.message) +}) + +// TODO: mark %pending xqstests as pending in mocha report +function xqsTests (mochaInstance, xqsPkg, xqstCount, xqstCase) { + let suiteInstance = Mocha.Suite.create(mochaInstance.suite, 'Xqsuite tests for ' + xqsPkg) + + if (xqstCase === undefined) { + // if xqs contains 0 tests close open mocha instance + mochaInstance.unloadFiles() + suiteInstance.dispose() + console.log('no test cases defined by suite ' + xqsPkg) + } else if (Array.isArray(xqstCase)) { + for (let i = 0; i < xqstCount; i++) { + xqsResult(suiteInstance, xqstCase[i]) + } + } else { + xqsResult(suiteInstance, xqstCase) + } +} + +function xqsResult (suiteInstance, xqstCase) { + suiteInstance.addTest(new Test('Test: ' + xqstCase.name, () => { + switch (Object.prototype.hasOwnProperty.call(xqstCase, '') ){ + // Red xqs test: filter to dynamically ouput messages only when record contains them + case 'failure': + expect(xqstCase, 'Function ' + xqstCase.class + ' ' + xqstCase.failure.message).to.not.have.own.property('failure') + break + case 'error': + expect(xqstCase, 'Function ' + xqstCase.class + ' ' + xqstCase.error.message).to.not.have.own.property('error') + break + // TODO: Blue xqs tests: pending not yet implemented + case 'pending': + Test.isPending(true) + break + // Green xqs tests: pass passing tests + default: + expect(xqstCase.failure).to.not.exist + expect(xqstCase.error).to.not.exist + break + } + } + )) +}