From cde93e96ea35159f629a91150291510d304304b5 Mon Sep 17 00:00:00 2001 From: engel80 Date: Thu, 11 Aug 2022 11:45:46 +0900 Subject: [PATCH 1/3] init --- .github/workflows/build.yml | 37 + .gitignore | 164 +- README.md | 380 +- app/Dockerfile | 15 + app/README.md | 5 + app/build.gradle | 24 + app/build.sh | 14 + app/buildspec.yaml | 22 + app/gradle/wrapper/gradle-wrapper.properties | 5 + app/gradlew | 185 + app/gradlew.bat | 89 + app/requirements.txt | 2 + app/settings.gradle | 1 + .../java/com/sec/sample/DemoApplication.java | 12 + .../java/com/sec/sample/SampleController.java | 29 + app/src/main/resources/application.yaml | 1 + build.gradle | 35 + clean-up.sh | 27 + code-pipeline/bin/index.ts | 21 + code-pipeline/cdk.json | 32 + code-pipeline/jest.config.js | 8 + code-pipeline/lib/ecs-codedeploy-stack.ts | 150 + config.ts | 22 + deploy-all.sh | 41 + ecr-codecommit/bin/index.ts | 20 + ecr-codecommit/cdk.json | 32 + ecr-codecommit/lib/ecr-codecommit-stack.ts | 70 + ecs-fargate-cluster/bin/index.ts | 20 + ecs-fargate-cluster/cdk.json | 32 + ecs-fargate-cluster/jest.config.js | 8 + ecs-fargate-cluster/lib/cluster-config.ts | 5 + .../lib/ecs-fargate-cluster-stack.ts | 46 + ecs-fargate-service-restapi/bin/index.ts | 18 + ecs-fargate-service-restapi/cdk.json | 32 + .../lib/ecs-fargate-service-restapi-stack.ts | 131 + ecs-fargatespot-service-restapi/bin/index.ts | 18 + ecs-fargatespot-service-restapi/cdk.json | 32 + .../ecs-fargatespot-service-restapi-stack.ts | 140 + ecs-iam-role/bin/index.ts | 17 + ecs-iam-role/cdk.json | 32 + ecs-iam-role/lib/ecs-iam-role-stack.ts | 69 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 185 + gradlew.bat | 89 + package-lock.json | 12189 ++++++++++++++++ package.json | 29 + screenshots/ecs-service.png | Bin 0 -> 61057 bytes screenshots/fargate-architecture.png | Bin 0 -> 103554 bytes screenshots/spot-task.png | Bin 0 -> 71920 bytes sonar.sh | 2 + tsconfig.json | 26 + vpc/bin/index.ts | 17 + vpc/cdk.json | 32 + vpc/lib/vpc-stack.ts | 37 + 55 files changed, 14640 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 app/Dockerfile create mode 100644 app/README.md create mode 100644 app/build.gradle create mode 100755 app/build.sh create mode 100644 app/buildspec.yaml create mode 100644 app/gradle/wrapper/gradle-wrapper.properties create mode 100755 app/gradlew create mode 100644 app/gradlew.bat create mode 100644 app/requirements.txt create mode 100644 app/settings.gradle create mode 100644 app/src/main/java/com/sec/sample/DemoApplication.java create mode 100644 app/src/main/java/com/sec/sample/SampleController.java create mode 100644 app/src/main/resources/application.yaml create mode 100644 build.gradle create mode 100755 clean-up.sh create mode 100644 code-pipeline/bin/index.ts create mode 100644 code-pipeline/cdk.json create mode 100644 code-pipeline/jest.config.js create mode 100644 code-pipeline/lib/ecs-codedeploy-stack.ts create mode 100644 config.ts create mode 100755 deploy-all.sh create mode 100644 ecr-codecommit/bin/index.ts create mode 100644 ecr-codecommit/cdk.json create mode 100644 ecr-codecommit/lib/ecr-codecommit-stack.ts create mode 100644 ecs-fargate-cluster/bin/index.ts create mode 100644 ecs-fargate-cluster/cdk.json create mode 100644 ecs-fargate-cluster/jest.config.js create mode 100644 ecs-fargate-cluster/lib/cluster-config.ts create mode 100644 ecs-fargate-cluster/lib/ecs-fargate-cluster-stack.ts create mode 100644 ecs-fargate-service-restapi/bin/index.ts create mode 100644 ecs-fargate-service-restapi/cdk.json create mode 100644 ecs-fargate-service-restapi/lib/ecs-fargate-service-restapi-stack.ts create mode 100644 ecs-fargatespot-service-restapi/bin/index.ts create mode 100644 ecs-fargatespot-service-restapi/cdk.json create mode 100644 ecs-fargatespot-service-restapi/lib/ecs-fargatespot-service-restapi-stack.ts create mode 100644 ecs-iam-role/bin/index.ts create mode 100644 ecs-iam-role/cdk.json create mode 100644 ecs-iam-role/lib/ecs-iam-role-stack.ts create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 screenshots/ecs-service.png create mode 100644 screenshots/fargate-architecture.png create mode 100644 screenshots/spot-task.png create mode 100755 sonar.sh create mode 100644 tsconfig.json create mode 100644 vpc/bin/index.ts create mode 100644 vpc/cdk.json create mode 100644 vpc/lib/vpc-stack.ts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2bda9ba --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,37 @@ +name: Build +on: + push: + branches: + - master + - develop + pull_request: + types: [opened, synchronize, reopened] +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Cache SonarCloud packages + uses: actions/cache@v1 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Cache Gradle packages + uses: actions/cache@v1 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: ${{ runner.os }}-gradle + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: ./gradlew build sonarqube --info \ No newline at end of file diff --git a/.gitignore b/.gitignore index a1c2a23..2c83b75 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,10 @@ -# Compiled class file -*.class -# Log file -*.log - -# BlueJ files -*.ctxt -# Mobile Tools for Java (J2ME) -.mtj.tmp/ +.gradle +.vscode +**/logs -# Package Files # +*.log *.jar *.war *.nar @@ -19,5 +13,151 @@ *.tar.gz *.rar -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* +# internal +*internal* + +# MAC +**/.DS_Store + +# Lambda layer +**/layers +**/temp + +# CDK +**/node_modules +**/cdk.out +**/cdk.context.json +**/cdk-outputs.json + +#------------------- + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +# CDK +#lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/README.md b/README.md index 94d01ea..00e0506 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,378 @@ -# ecs-fargate-cdk -ECS Fargate sample project with CDK. +# Sample project for ECS Fargate with CDK + +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ContainerOnAWS_ecs-fargate-cdk&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=ContainerOnAWS_ecs-fargate-cdk) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=ContainerOnAWS_ecs-fargate-cdk&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=ContainerOnAWS_ecs-fargate-cdk) + +## Introduction + +In this sample project, we will learn major features of ECS Fargate and Fargate Spot. + +![Architecture](./screenshots/fargate-architecture.png?raw=true) + +## Objectives + +Learn the features below using the CDK code: + +* ECS Cluster, Service, and Task +* ECS Task IAM role +* ECS Fargate and Fargate Spot with Capacity Prodiver +* ECS AutoScaling with Target Tracking Scaling +* ECS Exec to execute a command +* ECS deployment with X-Ray sidecar +* ECS deployment with AWS Code Commit repository and AWS Code Pipeline + +## Table of Contents + +1. Deploy VPC stack +2. Deploy ECS Fargate cluster stack +3. Deploy IAM Role stack +4. Docker build, deploy ECR and CodeCommit repository stack +5. Deploy ECS Fargate Service stack +6. Deploy ECS FargateSpot Service stack +7. Scale the ECS Tasks +8. Execute a command using ECS Exec +9. Deploy ECS Code Pipeline stack + +## Prerequisites + +```bash +npm install -g aws-cdk@2.32.1 +npm install -g cdk-ecr-deployment@2.5.5 + +# install packages in the root folder +npm install +cdk bootstrap +``` + +Use the `cdk` command-line toolkit to interact with your project: + +* `cdk deploy`: deploys your app into an AWS account +* `cdk synth`: synthesizes an AWS CloudFormation template for your app +* `cdk diff`: compares your app with the deployed stack +* `cdk watch`: deployment every time a file change is detected + +## CDK Stack + +| | Stack | Time To Complete | +|---|----------------------------------|-------------------| +| 1 | VPC | 3m 30s (optional) | +| 2 | ECS Fargate cluster | 50s | +| 3 | IAM roles | 1m | +| 4 | ECR and CodeCommit repository | 2m | +| 5 | ECS Fargate Service and ALB | 3m | +| 6 | ECS FargateSpot Service and ALB | 3m | +| 7 | Code Pipeline | 1m | +| | Total | 11m (14m 30s with a new VPC) | + +## Steps + +Use the [deploy-all.sh](./deploy-all.sh) file if you want to deploy all stacks without prompt at a time. + +### Step 1: VPC + +Deploy a new VPC: + +```bash +cd vpc +cdk deploy +``` + +[vpc/lib/vpc-stack.ts](./vpc/lib/vpc-stack.ts) + +The VPC ID will be saved into the SSM Parameter Store(`/cdk-ecs-fargate/vpc-id`) to refer from other stacks. + +To use the existing VPC, use the `-c vpcId` context parameter or create SSM Parameter: + +```bash +aws ssm put-parameter --name "/cdk-ecs-fargate/vpc-id" --value "{existing-vpc-id}" --type String +``` + +### Step 2: ECS cluster + +```bash +cd ../ecs-fargate-cluster +cdk deploy + +# or define your VPC id with context parameter +cdk deploy -c vpcId= +``` + +SSM parameter: + +* /cdk-ecs-fargate/vpc-id + +Cluster Name: [ecs-fargate-cluster/lib/cluster-config.ts](./ecs-fargate-cluster/lib/cluster-config.ts) + +[ecs-fargate-cluster/lib/ecs-fargate-cluster-stack.ts](./ecs-fargate-cluster/lib/ecs-fargate-cluster-stack.ts) + +### Step 3: IAM Role + +Create the ECS Task Execution role and default Task Role. + +* AmazonECSFargateTaskExecutionRole +* ECSFargateDefaultTaskRole including a policy for ECS Exec + +```bash +cd ../iam-role +cdk deploy +``` + +[ecs-iam-role/lib/ecs-iam-role-stack.ts](./ecs-iam-role/lib/ecs-iam-role-stack.ts) + +### Step 4: ECR and CodeCommit repository + +```bash +cd ../ecr-codecommit +cdk deploy --outputs-file ./cdk-outputs.json +cat ./cdk-outputs.json +``` + +[ecr-codecommit/lib/ecr-codecommit-stack.ts](./ecr-codecommit/lib/ecr-codecommit-stack.ts) + +### Step 5: ECS Service + +Crearte a Fargate Service, Auto Scaling, ALB, and Log Group. + +```bash +cd ../ecs-restapi-service +cdk deploy +``` + +ecs-restapi-service refers the SSM parameters below: + +* /cdk-ecs-fargate/vpc-id +* /cdk-ecs-fargate/cluster-securitygroup-id +* /cdk-ecs-fargate/task-execution-role-arn +* /cdk-ecs-fargate/default-task-role-arn + +[ecs-fargate-service-restapi/lib/ecs-fargate-service-restapi-stack.ts](./ecs-fargate-service-restapi/lib/ecs-fargate-service-restapi-stack.ts) + +#### Configuration for Staging and Production + +| Resource | Property | Value | +|---------------|--------------------|-------------| +| ECS Service | minHealthyPercent | 100 | +| ECS Service | maxHealthyPercent | 200 | +| ECS Service | scaleOutCooldown | 60 seconds | +| ECS Service | scaleInCooldown | 120 seconds | +| ALB | idleTimeout | 30 seconds | +| ALB TargetGroup | healthyThresholdCount | 2 | +| ALB TargetGroup | unhealthyThresholdCount | 5 | +| ALB TargetGroup | interval | 31 seconds | +| ALB TargetGroup | timeout | 30 seconds | +| ALB TargetGroup | deregistrationDelay | 15 seconds | + +**IMPORTANT** + +If the ECS cluster was re-created, you HAVE to deploy after cdk.context.json files deletion with the below: + +`find . -name "cdk.context.json" -exec rm -f {} \;` + +### Step 6: ECS Service with Fargate Spot + +Crearte a Fargate Service with `Spot CapacityProvider`, Auto Scaling, ALB, and Log Group. + +```bash +cd ../ecs-fargatespot-service-restapi +cdk deploy +``` + +Use FARGATE_SPOT as 50% ratio: + +```typescript +const fargateService = new ecs.FargateService(this, 'ecs-fargate-service', { + cluster, + serviceName, + taskDefinition, + enableExecuteCommand: true, + minHealthyPercent: 100, + maxHealthyPercent: 200, + capacityProviderStrategies: [ + { + capacityProvider: 'FARGATE_SPOT', + weight: 1, + }, + { + capacityProvider: 'FARGATE', + weight: 1, + } + ] +}); +``` + +[ecs-fargatespot-service-restapi/lib/ecs-fargatespot-service-restapi-stack.ts](./ecs-fargatespot-service-restapi/lib/ecs-fargatespot-service-restapi-stack.ts) + +![ecs-service](./screenshots/ecs-service.png?raw=true) + +![spot-task](./screenshots/spot-task.png?raw=true) + +### Step 7: Scale the Tasks + +```bash +aws ecs update-service --cluster fargate-dev --service fargate-restapi-dev --desired-count 10 + +aws ecs update-service --cluster fargate-dev --service fargatespot-restapi-dev --desired-count 10 +``` + +### Step 8: Execute a command using ECS Exec + +Install the Session Manager plugin for the AWS CLI: + +https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html#install-plugin-linux + +```bash +aws ecs list-tasks --cluster fargate-dev --service-name restapi +``` + +```json +{ + "taskArns": [ + "arn:aws:ecs:us-east-1:123456789:task/fargate-dev/0a244ff8b8654b3abaaed0880b2b78f1", + "arn:aws:ecs:us-east-1:123456789:task/fargate-dev/ac3d5a4e7273460a80aa18264e4a8f5e" + ] +} +``` + +```bash +TASK_ID=$(aws ecs list-tasks --cluster fargate-dev --service-name restapi | jq '.taskArns[0]' | cut -d '/' -f3 | cut -d '"' -f1) + +aws ecs execute-command --cluster fargate-dev --task $TASK_ID --container restapi-container --interactive --command "/bin/sh" +``` + +```bash +The Session Manager plugin was installed successfully. Use the AWS CLI to start a session. + +Starting session with SessionId: ecs-execute-command-0dfcb1f8c2e47585a +/app # top +Mem: 1253428K used, 6610268K free, 540K shrd, 2088K buff, 827656K cached +CPU: 0% usr 0% sys 0% nic 100% idle 0% io 0% irq 0% sirq +Load average: 0.00 0.02 0.00 4/301 75 + PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND + 22 8 root S 1525m 19% 2 0% /ecs-execute-command-2daf7b7a-7ad7-457d-a33d-ca639508cfa7/ssm-agent-worker + 57 22 root S 1518m 19% 2 0% /ecs-execute-command-2daf7b7a-7ad7-457d-a33d-ca639508cfa7/ssm-session-worker ecs-execute-command-0dfcb1f8c2e47585a + 8 0 root S 1440m 18% 1 0% /ecs-execute-command-2daf7b7a-7ad7-457d-a33d-ca639508cfa7/amazon-ssm-agent + 14 1 root S 32632 0% 2 0% {gunicorn} /usr/local/bin/python /usr/local/bin/gunicorn flask_api:app --bind 0.0.0.0:8080 + 1 0 root S 22976 0% 0 0% {gunicorn} /usr/local/bin/python /usr/local/bin/gunicorn flask_api:app --bind 0.0.0.0:8080 + 66 57 root S 1676 0% 0 0% /bin/sh + 74 66 root R 1604 0% 1 0% top +/app # exit +``` + +### Step 9: ECS deploy with Code Pipeline + +Commit ./app folder files to your new Code Commit repository: + +```bash +PROJECT_ROOT=$(pwd) +echo $PROJECT_ROOT + +CODECOMMIT_REPO_URL=$(cat ecr-codecommit/cdk-outputs.json | jq '."ecr-fargate-restapi-dev".CodeCommitRepoUrl'| cut -d '"' -f2) +echo $CODECOMMIT_REPO_URL +cd ../ +git clone ${CODECOMMIT_REPO_URL} +CODECOMMIT_ROOT=$(pwd)/fargate-restapi-dev + +cp ${PROJECT_ROOT}/app/* ${CODECOMMIT_ROOT}/ +cd ${CODECOMMIT_ROOT} +git add . +git commit -m "code pipeline" +git push +``` + +Create a GitHub token on `Settings > Developer settings` menu and create a secret: + +https://github.com/settings/tokens + +```bash +aws secretsmanager create-secret --name '/github/token' --secret-string {your-token} + +cd ../code-pipeline +cdk deploy +``` + +SSM parameters: + +* /cdk-ecs-fargate/ecr-repo-arn +* /cdk-ecs-fargate/ecr-repo-name +* /cdk-ecs-fargate/cluster-securitygroup-id +* /cdk-ecs-fargate/cluster-name +* /cdk-ecs-fargate/codecommit-arn + +[code-pipeline/lib/ecs-codedeploy-stack.ts](./code-pipeline/lib/ecs-codedeploy-stack.ts) + +## Clean Up + +[clean-up.sh](./clean-up.sh) + +## Structure + +```text +├── build.gradle +├── package.json +├── ssm-prefix.ts +├── tsconfig.json +├── vpc +│  ├── bin +│  │  └── index.ts +│  ├── cdk.json +│  └── lib +│  └── vpc-stack.ts +├── ecs-fargate-cluster +│  ├── bin +│  │  └── index.ts +│  ├── cdk.json +│  ├── lib +│  │  ├── cluster-config.ts +│  │  └── ec2ecs-cluster-stack.ts +│  └── settings.yaml +├── ecs-iam-role +│  ├── bin +│  │  └── index.ts +│  ├── cdk.json +│  └── lib +│  └── ecs-iam-role-stack.ts +├── ecs-fargate-service-restapi +│  ├── bin +│  │  └── index.ts +│  ├── cdk.json +│  ├── lib +│  │  └── ecs-fargate-service-restapi-stack.ts +├── ecs-fargatespot-service-restapi +│  ├── bin +│  │  └── index.ts +│  ├── cdk.json +│  ├── lib +│  │  └── ecs-fargatespot-service-restapi-stack.ts +├── app +│  ├── Dockerfile +│  ├── README.md +│  ├── build.sh +│  ├── flask_api.py +│  ├── gunicorn.config.py +│  └── requirements.txt +``` + +## Reference + +* [GitHub - aws-containers](https://github.com/aws-containers) + +### Docs + +* [Fargate Task Networking](https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/userguide/fargate-task-networking.html) for debugging + +* [ECS Exec](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) for debugging + +### CDK Lib + +* [ECS](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs-readme.html) + +* [ECR Assets](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecr_assets-readme.html) + +* [IAM](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam-readme.html) + +* [SSM](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm-readme.html) + +### IAM Role & Policy + +* [Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) + +* [Exec Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) diff --git a/app/Dockerfile b/app/Dockerfile new file mode 100644 index 0000000..70d7315 --- /dev/null +++ b/app/Dockerfile @@ -0,0 +1,15 @@ +FROM openjdk:8-jdk-alpine + +RUN mkdir -p /opt/build +ADD ./ /opt/build +WORKDIR /opt/build + +RUN pwd \ + && ls -alh \ + && ./gradlew build --no-daemon \ + && ls -alh ./build/libs/ \ + && cp ./build/libs/devopssample-java-gradle-0.0.1.jar app.jar + +VOLUME /tmp +EXPOSE 8080 +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","./app.jar"] \ No newline at end of file diff --git a/app/README.md b/app/README.md new file mode 100644 index 0000000..2af7163 --- /dev/null +++ b/app/README.md @@ -0,0 +1,5 @@ +# SpringBoot sample docker + +@RequestMapping(value="/", method=RequestMethod.GET) +@RequestMapping(value="/ping", method=RequestMethod.GET) +@RequestMapping(value="/serviceid/monitoring/v1/ping", method=RequestMethod.GET) diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..ee52712 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,24 @@ +plugins { + id 'org.springframework.boot' version '2.2.1.RELEASE' + id 'io.spring.dependency-management' version '1.0.8.RELEASE' + id 'java' +} + +group = 'devopssample' +version = '0.0.1' +sourceCompatibility = '1.8' + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-web' + testImplementation('org.springframework.boot:spring-boot-starter-test') { + exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + } +} + +test { + useJUnitPlatform() +} diff --git a/app/build.sh b/app/build.sh new file mode 100755 index 0000000..d0d4399 --- /dev/null +++ b/app/build.sh @@ -0,0 +1,14 @@ +ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) +REGION=$(aws configure get default.region) + +echo "ACCOUNT_ID: $ACCOUNT_ID" +echo "REGION: $REGION" +sleep 1 + +docker build -t sample-rest-api . + +docker tag sample-rest-api:latest ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/sample-rest-api:latest + +aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com + +docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/sample-rest-api:latest \ No newline at end of file diff --git a/app/buildspec.yaml b/app/buildspec.yaml new file mode 100644 index 0000000..59ce4ca --- /dev/null +++ b/app/buildspec.yaml @@ -0,0 +1,22 @@ +version: 0.2 +phases: + pre_build: + commands: + - env + - 'export TAG=${CODEBUILD_RESOLVED_SOURCE_VERSION}' + - 'echo TAG: ${TAG}' + finally: + - ls -alh + build: + commands: + - 'docker build -t $ECR_REPO_URI:$TAG .' + - aws --version + - 'aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com' + - 'docker push $ECR_REPO_URI:$TAG' + post_build: + commands: + - echo "[{'name':'fargate-restapi-container','imageUri':'$ECR_REPO_URI:$TAG'}]" > imagedefinitions.json + - pwd; ls -al; cat imagedefinitions.json +artifacts: + files: + - imagedefinitions.json diff --git a/app/gradle/wrapper/gradle-wrapper.properties b/app/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3ab0b72 --- /dev/null +++ b/app/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/app/gradlew b/app/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/app/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/app/gradlew.bat b/app/gradlew.bat new file mode 100644 index 0000000..ac1b06f --- /dev/null +++ b/app/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/app/requirements.txt b/app/requirements.txt new file mode 100644 index 0000000..b690bf6 --- /dev/null +++ b/app/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.1.1 +gunicorn==20.1.0 diff --git a/app/settings.gradle b/app/settings.gradle new file mode 100644 index 0000000..1b3afed --- /dev/null +++ b/app/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'devopssample-java-gradle' diff --git a/app/src/main/java/com/sec/sample/DemoApplication.java b/app/src/main/java/com/sec/sample/DemoApplication.java new file mode 100644 index 0000000..aaf09c1 --- /dev/null +++ b/app/src/main/java/com/sec/sample/DemoApplication.java @@ -0,0 +1,12 @@ +package com.sec.sample; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class); + } +} diff --git a/app/src/main/java/com/sec/sample/SampleController.java b/app/src/main/java/com/sec/sample/SampleController.java new file mode 100644 index 0000000..ecd822a --- /dev/null +++ b/app/src/main/java/com/sec/sample/SampleController.java @@ -0,0 +1,29 @@ +package com.sec.sample; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.RequestMethod; + +@RestController +public class SampleController { + + @RequestMapping(value="/", method=RequestMethod.GET) + public String home() { + return new String("OK"); + } + + @RequestMapping(value="/{seviceid}/{pathvar1}", method=RequestMethod.GET) + public String pingPath2() { + return new String("OK"); + } + + @RequestMapping(value="/{seviceid}/{pathvar1}/{pathvar2}", method=RequestMethod.GET) + public String pingPath3() { + return new String("OK"); + } + + @RequestMapping(value="/{seviceid}/{pathvar1}/{pathvar2}/{pathvar3}", method=RequestMethod.GET) + public String pingPath4() { + return new String("OK"); + } +} diff --git a/app/src/main/resources/application.yaml b/app/src/main/resources/application.yaml new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/app/src/main/resources/application.yaml @@ -0,0 +1 @@ + diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..61a3c4c --- /dev/null +++ b/build.gradle @@ -0,0 +1,35 @@ +apply plugin: 'base' +apply plugin: 'org.sonarqube' +archivesBaseName = 'cdk-ecs-fargate' + +buildscript { + repositories { + mavenCentral() + maven { + url "https://plugins.gradle.org/m2/" + } + } + dependencies { + classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.4.0.2513") + } +} + +sonarqube { + properties { + property "sonar.projectName", "ecs-fargate-cdk" + property "sonar.projectKey", "ContainerOnAWS_ecs-fargate-cdk" + property "sonar.organization", "containeronaws" + // property "sonar.host.url", "http://127.0.0.1:9000" + property "sonar.host.url", "https://sonarcloud.io" + property "sonar.sourceEncoding", "UTF-8" + property "sonar.sources", "." + property "sonar.exclusions", "**/node_modules/**, **/cdk.out/**, **/*.java" + property "sonar.inclusions", "**/Dockerfile,**/Jenkinsfile*" + property "sonar.cpd.exclusions", "**/*index.ts" + property "sonar.issue.ignore.multicriteria", "e1" + property "sonar.issue.ignore.multicriteria.e1.ruleKey", "typescript:S1848" + property "sonar.issue.ignore.multicriteria.e1.resourceKey", "**/*.ts" + property "sonar.links.ci", "https://github.com/engel80/ecs-fargate-cdk" + property "sonar.log.level", "DEBUG" + } +} diff --git a/clean-up.sh b/clean-up.sh new file mode 100755 index 0000000..1936bc6 --- /dev/null +++ b/clean-up.sh @@ -0,0 +1,27 @@ + +echo "destroy code-pipeline" +cd code-pipeline +cdk destroy + +echo "destroy ecs-fargatespot-service-restapi" +cd ../ecs-fargatespot-service-restapi +cdk destroy + +echo "destroy ecs-fargate-service-restapi" +cd ../ecs-fargate-service-restapi +cdk destroy + +echo "destroy ecs-fargate-cluster" +cd ../ecs-fargate-cluster +cdk destroy + +echo "destroy ecs-iam-role" +cd ../ecs-iam-role +cdk destroy + +echo "destroy vpc" +cd ../vpc +cdk destroy + +find . -name "cdk.out" -exec rm -rf {} \; +find . -name "cdk.context.json" -exec rm -f {} \; \ No newline at end of file diff --git a/code-pipeline/bin/index.ts b/code-pipeline/bin/index.ts new file mode 100644 index 0000000..865f606 --- /dev/null +++ b/code-pipeline/bin/index.ts @@ -0,0 +1,21 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import { DEFAULT_STAGE } from '../../config'; +import { EcsCodeDeployStack } from '../lib/ecs-codedeploy-stack'; + +const app = new cdk.App(); +const env = { + account: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION, +}; +const stage = app.node.tryGetContext('stage') || DEFAULT_STAGE; + +const serviceName = 'fargate-restapi'; + +new EcsCodeDeployStack(app, `codepipeline-${serviceName}-${stage}`, { + env, + stage, + serviceName, + description: `Code Pipeline, service name: ${serviceName}-${stage}`, + terminationProtection: stage!==DEFAULT_STAGE +}); diff --git a/code-pipeline/cdk.json b/code-pipeline/cdk.json new file mode 100644 index 0000000..4ff4890 --- /dev/null +++ b/code-pipeline/cdk.json @@ -0,0 +1,32 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/index.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "context": { + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ] + } +} diff --git a/code-pipeline/jest.config.js b/code-pipeline/jest.config.js new file mode 100644 index 0000000..08263b8 --- /dev/null +++ b/code-pipeline/jest.config.js @@ -0,0 +1,8 @@ +module.exports = { + testEnvironment: 'node', + roots: ['/test'], + testMatch: ['**/*.test.ts'], + transform: { + '^.+\\.tsx?$': 'ts-jest' + } +}; diff --git a/code-pipeline/lib/ecs-codedeploy-stack.ts b/code-pipeline/lib/ecs-codedeploy-stack.ts new file mode 100644 index 0000000..d8130f0 --- /dev/null +++ b/code-pipeline/lib/ecs-codedeploy-stack.ts @@ -0,0 +1,150 @@ +import { Stack, StackProps, CfnOutput, Tags } from 'aws-cdk-lib'; +import * as cdk from 'aws-cdk-lib'; +import * as ssm from 'aws-cdk-lib/aws-ssm'; + +import * as ecr from 'aws-cdk-lib/aws-ecr'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as ecs from 'aws-cdk-lib/aws-ecs'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as codebuild from 'aws-cdk-lib/aws-codebuild'; +import * as codepipeline from 'aws-cdk-lib/aws-codepipeline'; +import * as codecommit from 'aws-cdk-lib/aws-codecommit'; +import * as codepipeline_actions from 'aws-cdk-lib/aws-codepipeline-actions'; + +import { Construct } from 'constructs'; + +import { CLUSTER_NAME } from '../../ecs-fargate-cluster/lib/cluster-config'; +import { SSM_PREFIX } from '../../config'; +import { IBaseService } from 'aws-cdk-lib/aws-ecs'; + +export interface EcsCodeDeployStackProps extends StackProps { + stage: string; + serviceName: string; +} +/** + * SSM parameters: + * /cdk-ecs-fargate/ecr-repo-arn + * /cdk-ecs-fargate/ecr-repo-name + * /cdk-ecs-fargate/cluster-securitygroup-id + * /cdk-ecs-fargate/cluster-name + * /cdk-ecs-fargate/codecommit-arn + */ +export class EcsCodeDeployStack extends Stack { + constructor(scope: Construct, id: string, props: EcsCodeDeployStackProps) { + super(scope, id, props); + + const ecrRepo = ecr.Repository.fromRepositoryAttributes(this, 'ecr-repo', { + repositoryArn: cdk.Lazy.string({ produce: () => ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/ecr-repo-arn`) }), + repositoryName: ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/ecr-repo-name`) + }); + + const vpcId = this.node.tryGetContext('vpcId') || ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/vpc-id`); + const vpc = ec2.Vpc.fromLookup(this, 'vpc', { vpcId }); + const clusterSgId = ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/cluster-securitygroup-id`); + const ecsSecurityGroup = ec2.SecurityGroup.fromSecurityGroupId(this, 'ecs-security-group', clusterSgId); + + const cluster = ecs.Cluster.fromClusterAttributes(this, 'ecs-fargate-cluster', { + clusterName: `${CLUSTER_NAME}-${props.stage}`, + vpc, + securityGroups: [ecsSecurityGroup] + }); + const service = ecs.FargateService.fromFargateServiceAttributes(this, 'fargate-cluster', { + cluster, + serviceName: cdk.Lazy.string({ produce: () => ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/cluster-name`) }) + }) as IBaseService; + + const serviceName = props.serviceName; + const repository = codecommit.Repository.fromRepositoryArn(this, `${serviceName}-codecommit-arn`, + cdk.Lazy.string({ produce: () => ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/codecommit-arn`) })); + + /** + * buildImage: codebuild.LinuxBuildImage.AMAZON_LINUX_2_4, + * buildImage: codebuild.LinuxBuildImage.fromDockerRegistry('public.ecr.aws/h1a5s9h8/alpine:latest') + */ + const project = new codebuild.Project(this, `cb-project-${serviceName}`, { + projectName: `${serviceName}-build`, + source: codebuild.Source.codeCommit({ repository }), + environment: { + buildImage: codebuild.LinuxBuildImage.STANDARD_6_0, + privileged: true + }, + buildSpec: codebuild.BuildSpec.fromSourceFilename('./buildspec.yaml'), + badge: true, + environmentVariables: { + 'ACCOUNT_ID': { + value: props?.env?.account + }, + 'CLUSTER_NAME': { + value: `${service.cluster.clusterName}` + }, + 'SERVICE_NAME': { + value: `${service.serviceName}` + }, + 'ECR_REPO_URI': { + value: `${ecrRepo.repositoryUri}` + } + } + }); + ecrRepo.grantPullPush(project.role!); + project.role?.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonEC2ContainerRegistryPowerUser')); + + const sourceOutput = new codepipeline.Artifact(); + const buildOutput = new codepipeline.Artifact(); + + /** + * aws secretsmanager create-secret --name '/github/token' --secret-string {your-token} + * or set the token with oauthToken: cdk.SecretValue.plainText(''), + */ + const sourceAction = new codepipeline_actions.GitHubSourceAction({ + actionName: 'GitHub_Source', + owner: 'engel80', + repo: 'fargate-restapi-local', + branch: 'master', + oauthToken: cdk.SecretValue.secretsManager("/github/token"), + output: sourceOutput + }); + + // const sourceAction = new codepipeline_actions.CodeCommitSourceAction({ + // // account: props?.env?.account, + // actionName: 'CodeCommit', + // repository: repository, + // output: sourceOutput, + // }); + const buildAction = new codepipeline_actions.CodeBuildAction({ + actionName: 'CodeBuild', + project, + input: sourceOutput, + outputs: [buildOutput], + }); + const manualApprovalAction = new codepipeline_actions.ManualApprovalAction({ + actionName: 'Approve', + }); + const deployAction = new codepipeline_actions.EcsDeployAction({ + actionName: 'DeployAction', + service: service, + imageFile: new codepipeline.ArtifactPath(buildOutput, `imagedefinitions.json`) + }); + + const ecsPipeline = new codepipeline.Pipeline(this, 'ecs-deploy-pipeline', { + pipelineName: `ecs-deploy-${service.serviceName}`, + stages: [ + { + stageName: 'Source', + actions: [sourceAction], + }, + { + stageName: 'Build', + actions: [buildAction], + }, + { + stageName: 'Approve', + actions: [manualApprovalAction], + }, + { + stageName: 'Deploy', + actions: [deployAction], + } + ] + }); + } +} diff --git a/config.ts b/config.ts new file mode 100644 index 0000000..aca7e0d --- /dev/null +++ b/config.ts @@ -0,0 +1,22 @@ +import * as cdk from 'aws-cdk-lib'; + +/** + * /cdk-ecs-fargate/vpc-id + * + * ecs-fargate-cluster: + * /cdk-ecs-fargate/cluster-capacityprovider-name + * /cdk-ecs-fargate/cluster-securitygroup-id + * + * iam-role: + * /cdk-ecs-fargate/task-execution-role-arn + * /cdk-ecs-fargate/default-task-role-arn + * + */ +export const SSM_PREFIX = '/cdk-ecs-fargate'; + + +export const DEFAULT_STAGE = 'dev'; + +export interface StackCommonProps extends cdk.StackProps { + stage: string; +} \ No newline at end of file diff --git a/deploy-all.sh b/deploy-all.sh new file mode 100755 index 0000000..c5ed066 --- /dev/null +++ b/deploy-all.sh @@ -0,0 +1,41 @@ +find . -name "cdk.context.json" -exec rm -f {} \; + +echo "Deploy vpc" + +cd ./vpc +cdk deploy --require-approval never + + +echo "Deploy ecs-fargate-cluster" + +cd ../ecs-fargate-cluster +cdk deploy --require-approval never + + +echo "Deploy ecs-iam-role" + +cd ../ecs-iam-role +cdk deploy --require-approval never + +echo "Deploy ecr-codecommit" + +cd ../ecr-codecommit +cdk deploy --require-approval never --outputs-file ./cdk-outputs.json +cat ./cdk-outputs.json + + +echo "Deploy ecs-fargate-service-restapi" + +cd ../ecs-fargate-service-restapi +cdk deploy --require-approval never + + +echo "Deploy ecs-fargatespot-service-restapi" + +cd ../ecs-fargatespot-service-restapi +cdk deploy --require-approval never + +echo "Deploy code-pipeline" + +cd ../code-pipeline +cdk deploy --require-approval never diff --git a/ecr-codecommit/bin/index.ts b/ecr-codecommit/bin/index.ts new file mode 100644 index 0000000..3c57ece --- /dev/null +++ b/ecr-codecommit/bin/index.ts @@ -0,0 +1,20 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import { EcrCodeCommitStack } from '../lib/ecr-codecommit-stack'; +import { DEFAULT_STAGE } from '../../config'; + +const app = new cdk.App(); +const env = { + account: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION +}; +const stage = app.node.tryGetContext('stage') || DEFAULT_STAGE; +const serviceName = `fargate-restapi-${stage}` + +new EcrCodeCommitStack(app, `ecr-${serviceName}`, { + env, + stage, + serviceName, + description: `ECR: ${serviceName}`, + terminationProtection: stage!==DEFAULT_STAGE +}); diff --git a/ecr-codecommit/cdk.json b/ecr-codecommit/cdk.json new file mode 100644 index 0000000..4ff4890 --- /dev/null +++ b/ecr-codecommit/cdk.json @@ -0,0 +1,32 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/index.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "context": { + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ] + } +} diff --git a/ecr-codecommit/lib/ecr-codecommit-stack.ts b/ecr-codecommit/lib/ecr-codecommit-stack.ts new file mode 100644 index 0000000..471c36b --- /dev/null +++ b/ecr-codecommit/lib/ecr-codecommit-stack.ts @@ -0,0 +1,70 @@ +import { Construct } from 'constructs'; +import * as cdk from 'aws-cdk-lib'; +import { Stack, StackProps, CfnOutput, Tags } from 'aws-cdk-lib'; +import * as path from 'path'; +import * as codecommit from 'aws-cdk-lib/aws-codecommit'; +import * as ssm from 'aws-cdk-lib/aws-ssm'; +import * as ecr from 'aws-cdk-lib/aws-ecr'; +import * as assets from 'aws-cdk-lib/aws-ecr-assets'; +import * as ecrdeploy from 'cdk-ecr-deployment'; + +import { SSM_PREFIX } from '../../config'; +import { StackCommonProps } from '../../config'; + +export interface EcrStackProps extends StackCommonProps { + serviceName: string; +} +/** + * Build 'app/Dockerfile' and push to ECR for X86 and ARM + */ +export class EcrCodeCommitStack extends Stack { + constructor(scope: Construct, id: string, props: EcrStackProps) { + super(scope, id, props); + + const stage = props.stage; + const serviceName = props.serviceName; + + const assetX86 = new assets.DockerImageAsset(this, 'ecr-image-x86', { + directory: path.join(__dirname, "../../", "app") + }); + const ecrRepo = new ecr.Repository(this, `${serviceName}`, { + repositoryName: `${serviceName}` + }); + new ecrdeploy.ECRDeployment(this, 'ecr-deploy-x86', { + src: new ecrdeploy.DockerImageName(assetX86.imageUri), + dest: new ecrdeploy.DockerImageName(`${ecrRepo.repositoryUriForTag('latest')}`), + }); + + const assetArm = new assets.DockerImageAsset(this, 'ecr-image-arm', { + directory: path.join(__dirname, "../../", "app"), + platform: assets.Platform.LINUX_ARM64, + }); + const ecrArmRepo = new ecr.Repository(this, `${serviceName}-arm`, { + repositoryName: `${serviceName}-arm` + }); + new ecrdeploy.ECRDeployment(this, 'ecr-deploy-arm', { + src: new ecrdeploy.DockerImageName(assetArm.imageUri), + dest: new ecrdeploy.DockerImageName(`${ecrArmRepo.repositoryUriForTag('latest')}`), + }); + + const codecommitRepo = new codecommit.Repository(this, `${serviceName}-codecommit`, { + repositoryName: `${serviceName}` + }); + + Tags.of(codecommitRepo).add('Stage', stage); + Tags.of(ecrRepo).add('Stage', stage); + Tags.of(ecrArmRepo).add('Stage', stage); + + new CfnOutput(this, 'URI', { value: ecrRepo.repositoryUri }); + new CfnOutput(this, 'URIARM', { value: ecrArmRepo.repositoryUri }); + + new ssm.StringParameter(this, 'ssm-codecommit-arn', { parameterName: `${SSM_PREFIX}/codecommit-arn`, stringValue: codecommitRepo.repositoryArn }); + + new ssm.StringParameter(this, 'ssm-ecr-repo-name', { parameterName: `${SSM_PREFIX}/ecr-repo-name`, stringValue: ecrRepo.repositoryName }); + new ssm.StringParameter(this, 'ssm-ecr-repo-arn', { parameterName: `${SSM_PREFIX}/ecr-repo-arn`, stringValue: ecrRepo.repositoryArn }); + new ssm.StringParameter(this, 'ssm-ecr-armrepo-name', { parameterName: `${SSM_PREFIX}/ecr-armrepo-name`, stringValue: ecrArmRepo.repositoryUri }); + new ssm.StringParameter(this, 'ssm-ecr-armrepo-arn', { parameterName: `${SSM_PREFIX}/ecr-armrepo-arn`, stringValue: ecrArmRepo.repositoryArn }); + + new CfnOutput(this, 'CodeCommitRepoUrl', { value: codecommitRepo.repositoryCloneUrlHttp }); + } +} diff --git a/ecs-fargate-cluster/bin/index.ts b/ecs-fargate-cluster/bin/index.ts new file mode 100644 index 0000000..33786ab --- /dev/null +++ b/ecs-fargate-cluster/bin/index.ts @@ -0,0 +1,20 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; + +import { DEFAULT_STAGE } from '../../config'; +import { CLUSTER_NAME } from '../lib/cluster-config'; +import { EcsFargateClusterStack } from '../lib/ecs-fargate-cluster-stack'; + +const app = new cdk.App(); +const env = { + account: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION, +}; +const stage = app.node.tryGetContext('stage') || DEFAULT_STAGE; + +new EcsFargateClusterStack(app, `ecs-fargate-cluster-${CLUSTER_NAME}-${stage}`, { + env, + stage, + description: `ECS Fargate cluster, cluster name: ${CLUSTER_NAME}-${stage}`, + terminationProtection: stage!==DEFAULT_STAGE +}); diff --git a/ecs-fargate-cluster/cdk.json b/ecs-fargate-cluster/cdk.json new file mode 100644 index 0000000..4ff4890 --- /dev/null +++ b/ecs-fargate-cluster/cdk.json @@ -0,0 +1,32 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/index.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "context": { + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ] + } +} diff --git a/ecs-fargate-cluster/jest.config.js b/ecs-fargate-cluster/jest.config.js new file mode 100644 index 0000000..08263b8 --- /dev/null +++ b/ecs-fargate-cluster/jest.config.js @@ -0,0 +1,8 @@ +module.exports = { + testEnvironment: 'node', + roots: ['/test'], + testMatch: ['**/*.test.ts'], + transform: { + '^.+\\.tsx?$': 'ts-jest' + } +}; diff --git a/ecs-fargate-cluster/lib/cluster-config.ts b/ecs-fargate-cluster/lib/cluster-config.ts new file mode 100644 index 0000000..d34a530 --- /dev/null +++ b/ecs-fargate-cluster/lib/cluster-config.ts @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +export const CLUSTER_NAME = 'fargate'; + +export const INSTANCE_TYPE = 'c5.xlarge'; diff --git a/ecs-fargate-cluster/lib/ecs-fargate-cluster-stack.ts b/ecs-fargate-cluster/lib/ecs-fargate-cluster-stack.ts new file mode 100644 index 0000000..4129fd5 --- /dev/null +++ b/ecs-fargate-cluster/lib/ecs-fargate-cluster-stack.ts @@ -0,0 +1,46 @@ +import { Stack, CfnOutput, Tags } from 'aws-cdk-lib'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as ssm from 'aws-cdk-lib/aws-ssm'; +import * as ecs from 'aws-cdk-lib/aws-ecs'; +import { Construct } from 'constructs'; + +import { CLUSTER_NAME } from '../lib/cluster-config'; +import { StackCommonProps, SSM_PREFIX } from '../../config'; + +/** + * Create ECS Fargate cluster and shared security group for ALB ingress + */ +export class EcsFargateClusterStack extends Stack { + constructor(scope: Construct, id: string, props: StackCommonProps) { + super(scope, id, props); + + const vpcId = this.node.tryGetContext('vpcId') || ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/vpc-id`); + const vpc = ec2.Vpc.fromLookup(this, 'vpc', { vpcId }); + + const clusterName = `${CLUSTER_NAME}-${props.stage}`; + const cluster = new ecs.Cluster(this, 'ecs-cluster', { + vpc, + clusterName, + containerInsights: true, + }); + + const securityGroupName = `ecssg-${clusterName}`; + const ecsSecurityGroup = new ec2.SecurityGroup(this, 'ecs-security-group', { + vpc, + securityGroupName, + description: `ECS Fargate shared security group for ALB ingress, cluster: ${cluster}`, + }); + Tags.of(ecsSecurityGroup).add('Stage', props.stage); + Tags.of(ecsSecurityGroup).add('Name', securityGroupName); + + new CfnOutput(this, 'Cluster', { value: cluster.clusterName }); + new CfnOutput(this, 'ECS Security Group ID', {value: ecsSecurityGroup.securityGroupId}); + + // cluster-name and cluster-arn is used for deployment pipeline + new ssm.StringParameter(this, 'ssm-cluster-name', { parameterName: `${SSM_PREFIX}/cluster-name`, stringValue: cluster.clusterName }); + new ssm.StringParameter(this, 'ssm-cluster-arn', { parameterName: `${SSM_PREFIX}/cluster-arn`, stringValue: cluster.clusterArn }); + + // cluster-securitygroup-id is used to add inboud from ALB to Fargate service + new ssm.StringParameter(this, 'ssm-cluster-securitygroup-id', { parameterName: `${SSM_PREFIX}/cluster-securitygroup-id`, stringValue: ecsSecurityGroup.securityGroupId }); + } +} diff --git a/ecs-fargate-service-restapi/bin/index.ts b/ecs-fargate-service-restapi/bin/index.ts new file mode 100644 index 0000000..f53048c --- /dev/null +++ b/ecs-fargate-service-restapi/bin/index.ts @@ -0,0 +1,18 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import { DEFAULT_STAGE } from '../../config'; +import { FargateRestAPIServiceStack } from '../lib/ecs-fargate-service-restapi-stack'; + +const app = new cdk.App(); +const env = { + account: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION +}; +const stage = app.node.tryGetContext('stage') || DEFAULT_STAGE; + +new FargateRestAPIServiceStack(app, `ecs-fargate-service-restapi-${stage}`, { + env, + stage, + description: 'ECS Fargate service for RESTful API with ALB', + terminationProtection: stage!==DEFAULT_STAGE +}); diff --git a/ecs-fargate-service-restapi/cdk.json b/ecs-fargate-service-restapi/cdk.json new file mode 100644 index 0000000..4ff4890 --- /dev/null +++ b/ecs-fargate-service-restapi/cdk.json @@ -0,0 +1,32 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/index.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "context": { + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ] + } +} diff --git a/ecs-fargate-service-restapi/lib/ecs-fargate-service-restapi-stack.ts b/ecs-fargate-service-restapi/lib/ecs-fargate-service-restapi-stack.ts new file mode 100644 index 0000000..b1cbb80 --- /dev/null +++ b/ecs-fargate-service-restapi/lib/ecs-fargate-service-restapi-stack.ts @@ -0,0 +1,131 @@ +import { Construct } from 'constructs'; +import * as cdk from 'aws-cdk-lib'; +import { Stack, CfnOutput, Duration, Tags } from 'aws-cdk-lib'; +import * as path from 'path'; +import * as ecs from 'aws-cdk-lib/aws-ecs'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2'; +import * as logs from 'aws-cdk-lib/aws-logs'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as ssm from 'aws-cdk-lib/aws-ssm'; + +import { CLUSTER_NAME } from '../../ecs-fargate-cluster/lib/cluster-config'; +import { StackCommonProps, SSM_PREFIX } from '../../config'; + +/** + * Crearte Fargate Service, Auto Scaling, ALB, and Log Group. + * Set the ALB options for the production-level. + */ +export class FargateRestAPIServiceStack extends Stack { + constructor(scope: Construct, id: string, props: StackCommonProps) { + super(scope, id, props); + + const vpcId = this.node.tryGetContext('vpcId') || ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/vpc-id`); + const vpc = ec2.Vpc.fromLookup(this, 'vpc', { vpcId }); + const clusterSgId = ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/cluster-securitygroup-id`); + const ecsSecurityGroup = ec2.SecurityGroup.fromSecurityGroupId(this, 'ecs-security-group', clusterSgId); + + const cluster = ecs.Cluster.fromClusterAttributes(this, 'ecs-fargate-cluster', { + clusterName: `${CLUSTER_NAME}-${props.stage}`, + vpc, + securityGroups: [ecsSecurityGroup] + }); + const serviceName = 'fargate-restapi' + const containerName = `${serviceName}-container` + const applicationPort = 8080; + + const executionRoleArn = ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/task-execution-role-arn`); + const taskRoleArn = ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/default-task-role-arn`); + + const taskDefinition = new ecs.TaskDefinition(this, 'fargate-task-definition', { + cpu: '1024', + memoryMiB: '2048', + compatibility: ecs.Compatibility.FARGATE, + family: `${serviceName}-task`, + executionRole: iam.Role.fromRoleArn(this, 'task-execution-role', cdk.Lazy.string({ produce: () => executionRoleArn })), + taskRole: iam.Role.fromRoleArn(this, 'task-role', cdk.Lazy.string({ produce: () => taskRoleArn })) + }); + + const regUrl = `${props.env?.account}.dkr.ecr.${props.env?.region}.amazonaws.com/fargate-restapi-${props.stage}:latest`; + const container = taskDefinition.addContainer('container-restapi', { + containerName, + image: ecs.ContainerImage.fromRegistry(regUrl), + // or build with /app folder asset + // image: ecs.ContainerImage.fromAsset(path.join(__dirname, "../../", "app")), + cpu: 1024, + memoryReservationMiB: 2048 + }); + container.addPortMappings({ containerPort: applicationPort, hostPort: applicationPort }); + + const fargateservice = new ecs.FargateService(this, 'ecs-fargate-service', { + cluster, + serviceName: `${serviceName}-${props.stage}`, + taskDefinition, + enableExecuteCommand: true, + minHealthyPercent: 100, + maxHealthyPercent: 200, + healthCheckGracePeriod: Duration.seconds(0) // set the value as your application initialize time + }); + fargateservice.autoScaleTaskCount({ + minCapacity: 2, + maxCapacity: 100, + }).scaleOnCpuUtilization('cpuscaling', { + targetUtilizationPercent: 50, + scaleOutCooldown: Duration.seconds(60), + scaleInCooldown: Duration.seconds(120) + }); + + const logGroup = new logs.LogGroup(this, 'loggroup', { + logGroupName: serviceName, + removalPolicy: cdk.RemovalPolicy.DESTROY, + retention: logs.RetentionDays.TWO_WEEKS, + }); + + const albSecurityGroupName = `albsg-${serviceName}` + const albSecurityGroup = new ec2.SecurityGroup(this, albSecurityGroupName, { + securityGroupName: albSecurityGroupName, + vpc, + allowAllOutbound: true, + description: `ALB security group for ${serviceName} Service` + }); + ecsSecurityGroup.addIngressRule(albSecurityGroup, ec2.Port.tcp(applicationPort), 'Allow from ALB'); + albSecurityGroup.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(80), 'Allow any'); + + const alb = new elbv2.ApplicationLoadBalancer(this, 'alb', { + securityGroup: albSecurityGroup, + vpc, + loadBalancerName: `alb-${serviceName}`, + internetFacing: true, + deletionProtection: false, + idleTimeout: cdk.Duration.seconds(30), + }); + alb.addListener('https-listener', { + protocol: elbv2.ApplicationProtocol.HTTP, + open: false, + }).addTargets('ec2-service-target', { + targetGroupName: `tg-${serviceName}`, + port: applicationPort, + protocol: elbv2.ApplicationProtocol.HTTP, + targets: [fargateservice.loadBalancerTarget({ + containerName: containerName, + containerPort: applicationPort, + })], + healthCheck: { + healthyThresholdCount: 2, + unhealthyThresholdCount: 5, + interval: Duration.seconds(31), + path: '/ping', + timeout: Duration.seconds(30), + }, + deregistrationDelay: Duration.seconds(15) + }); + + Tags.of(albSecurityGroup).add('Stage', props.stage); + Tags.of(albSecurityGroup).add('Name', albSecurityGroupName); + + new CfnOutput(this, 'Service', { value: fargateservice.serviceArn }); + new CfnOutput(this, 'TaskDefinition', { value: taskDefinition.family }); + new CfnOutput(this, 'LogGroup', { value: logGroup.logGroupName }); + new CfnOutput(this, 'ALB', { value: alb.loadBalancerDnsName }); + } +} diff --git a/ecs-fargatespot-service-restapi/bin/index.ts b/ecs-fargatespot-service-restapi/bin/index.ts new file mode 100644 index 0000000..146942f --- /dev/null +++ b/ecs-fargatespot-service-restapi/bin/index.ts @@ -0,0 +1,18 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import { DEFAULT_STAGE } from '../../config'; +import { FargateSpotRestAPIServiceStack } from '../lib/ecs-fargatespot-service-restapi-stack'; + +const app = new cdk.App(); +const env = { + account: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION +}; +const stage = app.node.tryGetContext('stage') || DEFAULT_STAGE; + +new FargateSpotRestAPIServiceStack(app, `ecs-fargatespot-service-restapi-${stage}`, { + env, + stage, + description: 'ECS Fargate service for RESTful API with Spot CapacityProvider and ALB', + terminationProtection: stage!=DEFAULT_STAGE +}); diff --git a/ecs-fargatespot-service-restapi/cdk.json b/ecs-fargatespot-service-restapi/cdk.json new file mode 100644 index 0000000..4ff4890 --- /dev/null +++ b/ecs-fargatespot-service-restapi/cdk.json @@ -0,0 +1,32 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/index.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "context": { + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ] + } +} diff --git a/ecs-fargatespot-service-restapi/lib/ecs-fargatespot-service-restapi-stack.ts b/ecs-fargatespot-service-restapi/lib/ecs-fargatespot-service-restapi-stack.ts new file mode 100644 index 0000000..3f92de8 --- /dev/null +++ b/ecs-fargatespot-service-restapi/lib/ecs-fargatespot-service-restapi-stack.ts @@ -0,0 +1,140 @@ +import { Construct } from 'constructs'; +import * as cdk from 'aws-cdk-lib'; +import { Stack, CfnOutput, Duration, Tags } from 'aws-cdk-lib'; +import * as path from 'path'; +import * as ecs from 'aws-cdk-lib/aws-ecs'; +import * as ec2 from 'aws-cdk-lib/aws-ec2'; +import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2'; +import * as logs from 'aws-cdk-lib/aws-logs'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as ssm from 'aws-cdk-lib/aws-ssm'; + +import { CLUSTER_NAME } from '../../ecs-fargate-cluster/lib/cluster-config'; +import { StackCommonProps, SSM_PREFIX } from '../../config'; + +/** + * Crearte Fargate Service with Spot CapacityProvider, Auto Scaling, ALB, and Log Group. + * Set the ALB logs for the production-level. + */ +export class FargateSpotRestAPIServiceStack extends Stack { + constructor(scope: Construct, id: string, props: StackCommonProps) { + super(scope, id, props); + + const vpcId = this.node.tryGetContext('vpcId') || ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/vpc-id`); + const vpc = ec2.Vpc.fromLookup(this, 'vpc', { vpcId }); + const clusterSgId = ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/cluster-securitygroup-id`); + const ecsSecurityGroup = ec2.SecurityGroup.fromSecurityGroupId(this, 'ecs-security-group', clusterSgId); + + const cluster = ecs.Cluster.fromClusterAttributes(this, 'ecs-fargate-cluster', { + clusterName: `${CLUSTER_NAME}-${props.stage}`, + vpc, + securityGroups: [ecsSecurityGroup] + }); + + const serviceName = 'fargatespot-restapi' + const containerName = `${serviceName}-container` + const applicationPort = 8080; + + const executionRoleArn = ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/task-execution-role-arn`); + const taskRoleArn = ssm.StringParameter.valueFromLookup(this, `${SSM_PREFIX}/default-task-role-arn`); + + const taskDefinition = new ecs.TaskDefinition(this, 'fargate-task-definition', { + cpu: '1024', + memoryMiB: '2048', + compatibility: ecs.Compatibility.FARGATE, + family: `${serviceName}-task`, + executionRole: iam.Role.fromRoleArn(this, 'task-execution-role', cdk.Lazy.string({ produce: () => executionRoleArn })), + taskRole: iam.Role.fromRoleArn(this, 'task-role', cdk.Lazy.string({ produce: () => taskRoleArn })) + }); + const container = taskDefinition.addContainer('container-restapi', { + containerName, + image: ecs.ContainerImage.fromRegistry(`${props.env?.account}.dkr.ecr.${props.env?.region}.amazonaws.com/fargate-restapi-${props.stage}:latest`), + // or build with /app folder + // image: ecs.ContainerImage.fromAsset(path.join(__dirname, "../../", "app")), + cpu: 1024, + memoryReservationMiB: 2048 + }); + container.addPortMappings({ containerPort: applicationPort, hostPort: applicationPort }); + + const fargateservice = new ecs.FargateService(this, 'ecs-fargate-service', { + cluster, + serviceName: `${serviceName}-${props.stage}`, + taskDefinition, + enableExecuteCommand: true, + minHealthyPercent: 100, + maxHealthyPercent: 200, + healthCheckGracePeriod: Duration.seconds(0), // set the value as your application initialize time + capacityProviderStrategies: [ + { + capacityProvider: 'FARGATE_SPOT', + weight: 1, + }, + { + capacityProvider: 'FARGATE', + weight: 1, + } + ] + }); + fargateservice.autoScaleTaskCount({ + minCapacity: 2, + maxCapacity: 100, + }).scaleOnCpuUtilization('cpuscaling', { + targetUtilizationPercent: 50, + scaleOutCooldown: Duration.seconds(60), + scaleInCooldown: Duration.seconds(120) + }); + + const logGroup = new logs.LogGroup(this, 'loggroup', { + logGroupName: serviceName, + removalPolicy: cdk.RemovalPolicy.DESTROY, + retention: logs.RetentionDays.TWO_WEEKS, + }); + + const albSecurityGroupName = `albsg-${serviceName}` + const albSecurityGroup = new ec2.SecurityGroup(this, albSecurityGroupName, { + securityGroupName: albSecurityGroupName, + vpc, + allowAllOutbound: true, + description: `ALB security group for ${serviceName} Service` + }); + ecsSecurityGroup.addIngressRule(albSecurityGroup, ec2.Port.tcp(applicationPort), 'Allow from ALB'); + albSecurityGroup.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(80), 'Allow any'); + + const alb = new elbv2.ApplicationLoadBalancer(this, 'alb', { + securityGroup: albSecurityGroup, + vpc, + loadBalancerName: `alb-${serviceName}`, + internetFacing: true, + deletionProtection: false, + idleTimeout: cdk.Duration.seconds(30), + }); + alb.addListener('https-listener', { + protocol: elbv2.ApplicationProtocol.HTTP, + open: false, + }).addTargets('ec2-service-target', { + targetGroupName: `tg-${serviceName}`, + port: applicationPort, + protocol: elbv2.ApplicationProtocol.HTTP, + targets: [fargateservice.loadBalancerTarget({ + containerName: containerName, + containerPort: applicationPort, + })], + healthCheck: { + healthyThresholdCount: 2, + unhealthyThresholdCount: 5, + interval: Duration.seconds(31), + path: '/ping', + timeout: Duration.seconds(30), + }, + deregistrationDelay: Duration.seconds(15) + }); + + Tags.of(albSecurityGroup).add('Stage', props.stage); + Tags.of(albSecurityGroup).add('Name', albSecurityGroupName); + + new CfnOutput(this, 'Service', { value: fargateservice.serviceArn }); + new CfnOutput(this, 'TaskDefinition', { value: taskDefinition.family }); + new CfnOutput(this, 'LogGroup', { value: logGroup.logGroupName }); + new CfnOutput(this, 'ALB', { value: alb.loadBalancerDnsName }); + } +} diff --git a/ecs-iam-role/bin/index.ts b/ecs-iam-role/bin/index.ts new file mode 100644 index 0000000..b95f72d --- /dev/null +++ b/ecs-iam-role/bin/index.ts @@ -0,0 +1,17 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import { DEFAULT_STAGE } from '../../config'; +import { EcsIamRoleStack } from '../lib/ecs-iam-role-stack'; + +const app = new cdk.App(); +const env = { + account: process.env.CDK_DEFAULT_ACCOUNT, + region: process.env.CDK_DEFAULT_REGION +}; +const stage = app.node.tryGetContext('stage') || DEFAULT_STAGE; + +new EcsIamRoleStack(app, `ecs-fargate-iam-role-${stage}`, { + env, + description: 'ECS Fargate IAM Role', + terminationProtection: stage!==DEFAULT_STAGE +}); \ No newline at end of file diff --git a/ecs-iam-role/cdk.json b/ecs-iam-role/cdk.json new file mode 100644 index 0000000..4ff4890 --- /dev/null +++ b/ecs-iam-role/cdk.json @@ -0,0 +1,32 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/index.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "context": { + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ] + } +} diff --git a/ecs-iam-role/lib/ecs-iam-role-stack.ts b/ecs-iam-role/lib/ecs-iam-role-stack.ts new file mode 100644 index 0000000..fcf25c4 --- /dev/null +++ b/ecs-iam-role/lib/ecs-iam-role-stack.ts @@ -0,0 +1,69 @@ +import { Stack, StackProps, CfnOutput } from 'aws-cdk-lib'; + +import * as ssm from 'aws-cdk-lib/aws-ssm'; +import * as iam from 'aws-cdk-lib/aws-iam'; + +import { Construct } from 'constructs'; +import { SSM_PREFIX } from '../../config'; + +/** + * This stack is written to share IAM role among multiple-cluster + * + * https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html + * + * https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html + * + */ +export class EcsIamRoleStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + // AmazonECSTaskExecutionRole based on https://us-east-1.console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy$jsonEditor + const taskExecutionRole = new iam.Role(this, 'task-execution-role', { + roleName: 'AmazonECSFargateTaskExecutionRole', + assumedBy: new iam.ServicePrincipal('ecs-tasks.amazonaws.com'), + managedPolicies: [ + iam.ManagedPolicy.fromAwsManagedPolicyName( + 'service-role/AmazonECSTaskExecutionRolePolicy', + ), + ] + }); + + const defaultTaskRole = new iam.Role(this, 'default-task-role', { + roleName: 'ECSFargateDefaultTaskRole', + assumedBy: new iam.ServicePrincipal('ecs-tasks.amazonaws.com'), + managedPolicies: [ + iam.ManagedPolicy.fromAwsManagedPolicyName( + 'AWSXrayWriteOnlyAccess', + ), + iam.ManagedPolicy.fromAwsManagedPolicyName( + 'AmazonSSMReadOnlyAccess', + ) + ], + inlinePolicies: { + ECSExec: new iam.PolicyDocument({ + statements: [ + new iam.PolicyStatement({ + effect: iam.Effect.ALLOW, + actions: [ + "ssmmessages:CreateControlChannel", + "ssmmessages:CreateDataChannel", + "ssmmessages:OpenControlChannel", + "ssmmessages:OpenDataChannel", + ], + resources: ["*"], + }), + ], + }), + } + }); + + const taskExecRoleParam = new ssm.StringParameter(this, 'ssm-task-execution-role', { parameterName: `${SSM_PREFIX}/task-execution-role-arn`, stringValue: taskExecutionRole.roleArn }); + const defaultTaskRoleParam = new ssm.StringParameter(this, 'ssm-default-task-role', { parameterName: `${SSM_PREFIX}/default-task-role-arn`, stringValue: defaultTaskRole.roleArn }); + + new CfnOutput(this, 'SSMTaskExecRoleParam', { value: taskExecRoleParam.parameterName }); + new CfnOutput(this, 'SSMTaskExecRoleParamValue', { value: taskExecRoleParam.stringValue }); + new CfnOutput(this, 'SSMDefaultTaskRoleParam', { value: defaultTaskRoleParam.parameterName }); + new CfnOutput(this, 'SSMDefaultTaskRoleParamValue', { value: defaultTaskRoleParam.stringValue }); + } +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3ab0b72 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..ac1b06f --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4d84603 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12189 @@ +{ + "name": "cdk-ecs-ec2", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cdk-ecs-ec2", + "version": "0.1.0", + "dependencies": { + "@types/js-yaml": "4.0.5", + "aws-cdk-lib": "2.32.1", + "cdk-ecr-deployment": "2.5.5", + "constructs": "^10.0.0", + "sync-request": "6.1.0" + }, + "bin": { + "cluster": "ecs-ec2-cluster/bin/index.js" + }, + "devDependencies": { + "@types/jest": "^26.0.10", + "@types/js-yaml": "4.0.5", + "@types/node": "10.17.27", + "jest": "^26.4.2", + "ts-jest": "^26.2.0", + "ts-node": "^9.0.0", + "typescript": "~3.9.7" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.0.tgz", + "integrity": "sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.0", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.0", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", + "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.0", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", + "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", + "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/highlight/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", + "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", + "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "dependencies": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "node-notifier": "^8.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", + "dev": true, + "dependencies": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "10.17.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.27.tgz", + "integrity": "sha512-J0oqm9ZfAXaPdwNXMMgAhylw5fhmXkToJd06vuDUSAgEDZ/n/69/69UmyBZbc+zT34UnShuDSBqvim3SPnozJg==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.1.tgz", + "integrity": "sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "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/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/aws-cdk-lib": { + "version": "2.32.1", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.32.1.tgz", + "integrity": "sha512-P0qGCh9sjJwrM0IaF6uULfup6R4JBoQKOxQxefF0KeCCgI3DbYoNHZOTJPejnaPRdX0Vhq607t6i6bq6gYxjOQ==", + "bundleDependencies": [ + "@balena/dockerignore", + "case", + "fs-extra", + "ignore", + "jsonschema", + "minimatch", + "punycode", + "semver", + "yaml" + ], + "dependencies": { + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^9.1.0", + "ignore": "^5.2.0", + "jsonschema": "^1.4.1", + "minimatch": "^3.1.2", + "punycode": "^2.1.1", + "semver": "^7.3.7", + "yaml": "1.10.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "constructs": "^10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/aws-cdk-lib/node_modules/at-least-node": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/aws-cdk-lib/node_modules/case": { + "version": "1.6.3", + "inBundle": true, + "license": "(MIT OR GPL-3.0-or-later)", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/aws-cdk-lib/node_modules/fs-extra": { + "version": "9.1.0", + "inBundle": true, + "license": "MIT", + "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/aws-cdk-lib/node_modules/graceful-fs": { + "version": "4.2.10", + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/ignore": { + "version": "5.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonfile": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aws-cdk-lib/node_modules/jsonschema": { + "version": "1.4.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/lru-cache": { + "version": "6.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/minimatch": { + "version": "3.1.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/aws-cdk-lib/node_modules/punycode": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-cdk-lib/node_modules/semver": { + "version": "7.3.7", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aws-cdk-lib/node_modules/universalify": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-cdk-lib/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/aws-cdk-lib/node_modules/yaml": { + "version": "1.10.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dev": true, + "dependencies": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001342", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz", + "integrity": "sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "dependencies": { + "rsvp": "^4.8.4" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/cdk-ecr-deployment": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/cdk-ecr-deployment/-/cdk-ecr-deployment-2.5.5.tgz", + "integrity": "sha512-glU4fIotzz/sTDqpTqEUs3XKSlYxWBFt5sTAWgZAzIUf149i3AIhrq3OoJsH7Q7WwjFcGcLX5+BFiHvPe9l1yg==", + "bundleDependencies": [ + "got", + "hpagent" + ], + "dependencies": { + "aws-cdk-lib": "^2.0.0", + "constructs": "^10.0.5", + "got": "^11.8.3", + "hpagent": "^0.1.2" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.0.0", + "constructs": "^10.0.5" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/@sindresorhus/is": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/@types/cacheable-request": { + "version": "6.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/@types/cacheable-request/node_modules/@types/node": { + "version": "17.0.35", + "inBundle": true, + "license": "MIT" + }, + "node_modules/cdk-ecr-deployment/node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/cdk-ecr-deployment/node_modules/@types/keyv": { + "version": "3.1.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/@types/keyv/node_modules/@types/node": { + "version": "17.0.35", + "inBundle": true, + "license": "MIT" + }, + "node_modules/cdk-ecr-deployment/node_modules/@types/responselike": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/@types/responselike/node_modules/@types/node": { + "version": "17.0.35", + "inBundle": true, + "license": "MIT" + }, + "node_modules/cdk-ecr-deployment/node_modules/cacheable-lookup": { + "version": "5.0.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/cacheable-request": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/clone-response": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/decompress-response": { + "version": "6.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/defer-to-connect": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/end-of-stream": { + "version": "1.4.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/get-stream": { + "version": "5.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/got": { + "version": "11.8.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/hpagent": { + "version": "0.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/cdk-ecr-deployment/node_modules/http-cache-semantics": { + "version": "4.1.0", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/cdk-ecr-deployment/node_modules/http2-wrapper": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/json-buffer": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/cdk-ecr-deployment/node_modules/keyv": { + "version": "4.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/lowercase-keys": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/mimic-response": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/normalize-url": { + "version": "6.1.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/once": { + "version": "1.4.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/p-cancelable": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/pump": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/quick-lru": { + "version": "5.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/resolve-alpn": { + "version": "1.2.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/cdk-ecr-deployment/node_modules/responselike": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/cdk-ecr-deployment/node_modules/wrappy": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC" + }, + "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/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.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/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/constructs": { + "version": "10.1.15", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.15.tgz", + "integrity": "sha512-fvGJ3AXx4uf0W4PoDnHa7s6IwSGprGYO9lhTG0jlRMzUyW7QtKLUKaTMT0zK621tTiCuZnBk6m26x4AnVYqkNw==", + "engines": { + "node": ">= 14.17.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.137", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", + "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", + "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/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "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==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "engines": { + "node": ">=4" + } + }, + "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/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": 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==", + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "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/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "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==" + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "optional": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-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-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "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": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "dev": true, + "dependencies": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "dependencies": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "fsevents": "^2.1.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, + "dependencies": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "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==", + "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": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "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/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node_modules/node-notifier": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", + "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", + "dev": true, + "optional": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + } + }, + "node_modules/node-notifier/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, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-releases": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", + "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "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/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", + "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "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/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "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.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "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/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "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/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true, + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "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/sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", + "dev": true, + "dependencies": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/sane/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sane/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/sane/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.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/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "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==", + "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/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.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": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-jest": { + "version": "26.5.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", + "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^26.1.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "jest": ">=26 <27", + "typescript": ">=3.8 <5.0" + } + }, + "node_modules/ts-jest/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/ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "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, + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "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": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "dev": true + }, + "@babel/core": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.0.tgz", + "integrity": "sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.0", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.0", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", + "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.0", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", + "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/helpers": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", + "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + } + }, + "@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", + "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", + "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + } + }, + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + } + }, + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + } + }, + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", + "dev": true, + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", + "dev": true + }, + "@types/node": { + "version": "10.17.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.27.tgz", + "integrity": "sha512-J0oqm9ZfAXaPdwNXMMgAhylw5fhmXkToJd06vuDUSAgEDZ/n/69/69UmyBZbc+zT34UnShuDSBqvim3SPnozJg==" + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/prettier": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.1.tgz", + "integrity": "sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "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" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "aws-cdk-lib": { + "version": "2.32.1", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.32.1.tgz", + "integrity": "sha512-P0qGCh9sjJwrM0IaF6uULfup6R4JBoQKOxQxefF0KeCCgI3DbYoNHZOTJPejnaPRdX0Vhq607t6i6bq6gYxjOQ==", + "requires": { + "@balena/dockerignore": "^1.0.2", + "case": "1.6.3", + "fs-extra": "^9.1.0", + "ignore": "^5.2.0", + "jsonschema": "^1.4.1", + "minimatch": "^3.1.2", + "punycode": "^2.1.1", + "semver": "^7.3.7", + "yaml": "1.10.2" + }, + "dependencies": { + "@balena/dockerignore": { + "version": "1.0.2", + "bundled": true + }, + "at-least-node": { + "version": "1.0.0", + "bundled": true + }, + "balanced-match": { + "version": "1.0.2", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "case": { + "version": "1.6.3", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "fs-extra": { + "version": "9.1.0", + "bundled": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "bundled": true + }, + "ignore": { + "version": "5.2.0", + "bundled": true + }, + "jsonfile": { + "version": "6.1.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonschema": { + "version": "1.4.1", + "bundled": true + }, + "lru-cache": { + "version": "6.0.0", + "bundled": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "punycode": { + "version": "2.1.1", + "bundled": true + }, + "semver": { + "version": "7.3.7", + "bundled": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "bundled": true + }, + "yallist": { + "version": "4.0.0", + "bundled": true + }, + "yaml": { + "version": "1.10.2", + "bundled": true + } + } + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dev": true, + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "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 + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "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" + } + }, + "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-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001342", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz", + "integrity": "sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==", + "dev": true + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "cdk-ecr-deployment": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/cdk-ecr-deployment/-/cdk-ecr-deployment-2.5.5.tgz", + "integrity": "sha512-glU4fIotzz/sTDqpTqEUs3XKSlYxWBFt5sTAWgZAzIUf149i3AIhrq3OoJsH7Q7WwjFcGcLX5+BFiHvPe9l1yg==", + "requires": { + "aws-cdk-lib": "^2.0.0", + "constructs": "^10.0.5", + "got": "^11.8.3", + "hpagent": "^0.1.2" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.3.0", + "bundled": true + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "bundled": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@types/cacheable-request": { + "version": "6.0.2", + "bundled": true, + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + }, + "dependencies": { + "@types/node": { + "version": "17.0.35", + "bundled": true + } + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "bundled": true + }, + "@types/keyv": { + "version": "3.1.3", + "bundled": true, + "requires": { + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "17.0.35", + "bundled": true + } + } + }, + "@types/responselike": { + "version": "1.0.0", + "bundled": true, + "requires": { + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "17.0.35", + "bundled": true + } + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "bundled": true + }, + "cacheable-request": { + "version": "7.0.2", + "bundled": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "bundled": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "bundled": true, + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "bundled": true + } + } + }, + "defer-to-connect": { + "version": "2.0.1", + "bundled": true + }, + "end-of-stream": { + "version": "1.4.4", + "bundled": true, + "requires": { + "once": "^1.4.0" + } + }, + "get-stream": { + "version": "5.2.0", + "bundled": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "11.8.3", + "bundled": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "hpagent": { + "version": "0.1.2", + "bundled": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "bundled": true + }, + "http2-wrapper": { + "version": "1.0.3", + "bundled": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "bundled": true + }, + "keyv": { + "version": "4.0.5", + "bundled": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "bundled": true + }, + "mimic-response": { + "version": "1.0.1", + "bundled": true + }, + "normalize-url": { + "version": "6.1.0", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "2.1.1", + "bundled": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "quick-lru": { + "version": "5.1.1", + "bundled": true + }, + "resolve-alpn": { + "version": "1.2.1", + "bundled": true + }, + "responselike": { + "version": "2.0.0", + "bundled": true, + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "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" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.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 + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "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": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "constructs": { + "version": "10.1.15", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.15.tgz", + "integrity": "sha512-fvGJ3AXx4uf0W4PoDnHa7s6IwSGprGYO9lhTG0jlRMzUyW7QtKLUKaTMT0zK621tTiCuZnBk6m26x4AnVYqkNw==" + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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" + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "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" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, + "electron-to-chromium": { + "version": "1.4.137", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", + "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "dev": true + }, + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "dev": true + }, + "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" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.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": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", + "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" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "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==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "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-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, + "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" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "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 + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "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==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "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 + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "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==" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "optional": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "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-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "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-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "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": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + } + }, + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + } + }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + } + }, + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + } + }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + } + }, + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + } + }, + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "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" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.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 + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "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==", + "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": "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" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "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 + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-notifier": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", + "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "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, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "node-releases": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", + "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", + "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "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" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "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 + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "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.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "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 + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "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" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "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 + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "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 + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.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-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "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 + }, + "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" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + } + } + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.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": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "ts-jest": { + "version": "26.5.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", + "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^26.1.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "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" + } + } + } + }, + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "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 + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "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, + "optional": true + }, + "v8-to-istanbul": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.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" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "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" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true, + "requires": {} + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "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": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2a277b8 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "cdk-ecs-ec2", + "version": "0.1.0", + "bin": { + "cluster": "ecs-ec2-cluster/bin/index.js" + }, + "scripts": { + "build": "tsc", + "watch": "tsc -w", + "test": "jest", + "cdk": "cdk" + }, + "devDependencies": { + "@types/jest": "^26.0.10", + "@types/js-yaml": "4.0.5", + "@types/node": "10.17.27", + "jest": "^26.4.2", + "ts-jest": "^26.2.0", + "ts-node": "^9.0.0", + "typescript": "~3.9.7" + }, + "dependencies": { + "@types/js-yaml": "4.0.5", + "aws-cdk-lib": "2.32.1", + "cdk-ecr-deployment": "2.5.5", + "constructs": "^10.0.0", + "sync-request": "6.1.0" + } +} diff --git a/screenshots/ecs-service.png b/screenshots/ecs-service.png new file mode 100644 index 0000000000000000000000000000000000000000..c121149ce80a7d4df383826aaa520bc98e49f97a GIT binary patch literal 61057 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

~^psR;_jbjPCegKTj7`>cKAZfqS;cQt~ z6up!-qekzoO!{BIkX;*_nWxBG1=J`=eWDQX^xB$jy44E0G5Xe$&VnTQM$HKy{fm@C z$MMhvKoNVx8b%p);a*rdQVg0CFO76sa8&?}3O*v-I|N}gv6%?~n1p|_4!yyCxAn|F zmjcEYbHwHvVgbu~3^um77gWj!D@r;q8h2NeO7(THdyd~ncviVOQVM{MPwc~Eoh)lE z_xOH+9%2`2xrn;at6(Ry`0i}iR`4QTuw?tFL90DtOKxlzNEH2GsKqY@9d$H#G81+0 zXJoSa>r=7{vTj24Sd{+&ryB@3pjsc$kke4Q4=^x(^9?k5L*E*DIn9X@j+oZS^jy4n zZKdljt%9r;R|{@Q5{UsnAfHjXui^J&EFeK=CVq=c(slmCk~d3z`rs+;3Kl2OC%ZxB z5>PLkCEF+FvU2wW*L?Jww3oLse=3L~Xo7eT9?>$#bbym|Bvft|cd(rHNaoHW3GYVC zcJ=$xsSvYjK+ql~E$4g9K~{k6lR_zD>b26vu8I(hD{0Fe2DZmdXAAGLAE^`-z$^Qh zVBzr+v3;2~m1k0>R4f_fwziuz2ymbKK~+NS7^DAwR~ z1hP`Gb!6Y=cs8diIX87$9TOr6)wJ3pPfN7bz9LB$G=r0~z#eST#Pg#s!cyM^N!v4s9q=v3 z391tV44z=M5^m6zyQosUO9`iUtr z*tm+mu&TPEG_kf8mu)L>o8EfON=r{kD))38nrL%%X3~Z1R&2oFGiC}ptsYEu>lqqV z=&oZ4!__-_=2OStCm=Ki4G&&#)_-)~=G840lkjR1L?CF4uvjR_rdDl{H(_yM%|Ky0 zb};2(G;P~WwX3*?ADN=#GG$gsN->SgDJSPgi%1)$)Wb#-~OU7q^6EGY*5~!J!m!%KS+{JUu|wBvFe5N1*9xE`jb(o zT0LPLr}dhGGa3~se#VTh6DK)EH93ys8h&l-;`L-5;agDh24vwIt--06gyWwUd(P75 z&jJz?gElLBkhcJu^3y#D97C(JG1`PP04A*vgm5EG2u^11MwXf@ALAk=>tHp`?B146 zf~Wl~et%ww94G(m=IFL9I8h5uPXFn$VyABB6q5f=Y5+G0;tZQ*Y~|t!1;QB!3JZO3 znQ1;9gGFCS_VG3P<(=SC#fSh>YHiw<{>~4(EbQ^k-e~4}B~mhdQYk51X7w`N=5{>Q zrY={VQlinl1d4r=IiyH3OKB4Nh8-$wsGDzs(=zR?wh{wPvb>uRiO`Q6om&sLzw@nq zHQsVRVAQ8gco&4BN{~`*ODI84UhF)ik$qOwMzHfPja?rqE+90%TZ(&y}~(J?G6c@kao8QeGqK! zr&4CPMoxe#zsWY!r`j9u;}eJcAmbV>=WJmj)b`+A{983kHM@4LD7B7#!Z{fH&3#8r zrEwBl8*KEqLR6*UTAWDlQ(hcejTM=Mix4Ellqu^I<^J5G+7`?rUP>}i%1^)Ni3^y< z@D|4xmw%9%q9xI~lA!YQri@yu*SEOl^bmgIBsoZb0K?B0R!C+sBQO%w#M;=4 zFLG<5BPCVo+Gs7wBfH<7t>xXlcV0~k)BSjPTV~b=_txYOavcPQ77SCAYC6xG7VXE2 zVlYV(PGY)sG#=W{@6m4?Cg8dUoaGN?krT<6*6v2*`CAC@evZOkm>_UoUUD$Wl4Xb> ziSAy-@PwNy8tn*V$>aUqeIp|y&hYF^99!v;24oIn8SR+r=`Q_y&)$w%rQSZVYOL1+K_0?igO;)xgC?^%cl zT>7Yr=GoN@7hR1x$CS0BGi8IsO&=(GD>*&0Wg#W{c`@G$WtiWBl7MrEtJZo5@b4ri zm|xOnkRk3NU5-{Dq(l!&^4q$@WxbctzV&LuxoNdJc19C$8fP)2E#lVna<^Vyv$>2U zMgm4!ir)b4gJx1{Vu-$z?3R<#aSG(q!zxcB)pYIVaX(C+of>ni-85O9VopCxrTAVv z@QeoWMg=chkuEqUsO&1JA-KwOU&J7e=!2uX3f;IGNf3m_E^2|uP~1ivDZ4dEJWV<6 zA=P7~NBf*(_?xy{48jw1rCZKvr)R`rH~yH!NnN0(`<<-R9f-`^OX-N5NtE6razb~} zeoAg7p$ozlBDioGSEv49xp$|YuQX8aecNqnJcInXYFfzjfPs_Wxs2~`H20&;6TYso zzvr);VnpJV;03Rjr5TyedeKNR9L`~*&MXLSM&(-f~EVYA|>@wFGub)FpTzI>RDkZ&_FP`P(09$K$~0t2q^$0paVPi zhxIPw)p`8)hhRt|34E)+a=Wem(`N>2>Kp{~*fDS<{8yIeS7;pgwXTiae=m*?fNaOV z>89}hb?s}g9w&&KT^;^MoRNerL810P-@z_J#K`}7$#`)f#*`*yWdl?x{(pXq2?T%- zgBA%4)&Kt1|0}n*&n5B-gdN(vz5n9QEY5VeK;f{6^$Y0wxgKtR@c~qlKjSzsxrzi< z(**A;;8;o5!(j?A>ZQQIDqkx4)*m!*b$@XW#6La-Zm;O`(!A2!Ntbi)y80d*swp_a zZJfo*1_JimWJ{$m4)-=bQva4~l+wvw?|~NtOvpF>)XWY5l7{Y|xzd58;oLfi^P)+E zDIXQNQE@Ip$}a1z3bE=y>oW)R1NEV?IdHxkt2AVTJWn8o)FJHmcNt)*u7%1cI)PL< znJ=L43uTke)B^P)xk@?s;0|axr_BODz%HN`>bz0bz6)6YKIf-Fkl*f}*JwSvmKr7K zQI)v@jar=xqOA0C244Y=+G1WO01}mU>VRFsLG5f%@fs8=292vilt6x<79jY%EA2rq z?8O{}>Qwo2`dsxgIp8cpsU#qWUJwlIi>sU;mDOJdFa3h+ga?Ez84yzsxhRAjJzE(rxDEjvft&XVZg(rq$|2NpW8z7z2d((WL${r|w@{{F zzwd~W01-LEkJZyNH0aMlHMZVU`?tK{qCW!x%t!)=4hMD4oN((Z9{D#O4Y7I>3a1Fp&HJoWEu+K+o3y& z-$8J^G5w+z%>4_iXGck?X@wd#qF0CdRVwcK1DvMK>rgK-WG(H7 zP{JPg=*Z97o(9c_{4&I~wE35wq+a{@+}#**dEa}2x(~lYjSv3_JhWt8vHPf}06O|e zCyz%v84EQbyx#6#J$vJ#(qM)1SfB)3X2&NN6A#ble08R<_Vgx;Asv;CnydK)J1WZ2S7&t>(p8HeMjU=|>`2fXmv% z4SyexFrHP-A%Ej;^D2{HHl(dVK3`A;DH zb_z~Y`um>1vq7-7mB0Z1_(TB@k77tqQ_Vuitoqu5#E@US4}e8nO55SpW!ZX^MfiVRm-fwiHQVz@qpd8Oz}4RO4j~6 zFm|_h7xNMdksaV4u+|JZeOnUQFadeVkT|G}5HGZPamgzZ@e-^hHEL>NZ6*+ml}bfs z1M={sP)5gQij^;vr74@Kn*)F2C1HezE}2&}SJ;u7@eEGVe|xqj8nWpU94{(-2hItD zxuA6pC}!<|Mo2wnA9LMOYVC@GlkG7ok z5DGop`Uw=;)Vsv}-U&x+Yq|u3z$E@gwB0X?0>3QAw1aAy&P&#PL8=3+$pJR{?8gL{ z1i{6yC`oyZwG(h2ei*q`oEjk$P3OW%i(l#~DPhy-nyYq0DLx79+kvMM;>}eGQ)S}O z$CU<3UDn0&u-A*i2uptg(`*g-YW?zXq^_zXO1w@cn!2O=by+?ZiCWm{P4IIs#M(`8 z?82moeRT;FLiOGmU>UOzbSoc<)(2qk%J`-D$Klib4HI=~MML1}%Q%wXih1^?%UX_7 z)dHn{zF$l=>$lfgNHvrP#%b9BfJm>%W8{CTI9_U_3lsXb$cU#L8S0`GDu&aqlWe8xHJgJ@o5Oa+MeTZuHwiNbBJQ-I?s_&pSbMx-#`QZC;bzE<& z6PT|)O~Efjg`CGTJ48@80i4b4J#SjaJL!uFA5|0Dt%+IHB}+LqNdqYBnHX3}@q3sL zN%dhp)TKc5>J*91eu+fFiIRVV2*9T}CsDc2%M%1VIkO3zt0b1>SM;z-7RW3%Qi3W! zoxpRzBKA{4Q@Nz3ciKgg_q0fE8HstHMaa2CIhJ~>@ydNED=a2g{Jr&Dzp#39x>V^M zy@u&L4;e3mq<3_#+HNk-rqLa`Bd3*bB9&xI#Qm=9pt1RJUo#sydO4VES6lrBz77Mi zg-{NXXoxn4{5NC%ltFSF8hlx<_EIlW`8zvk(4D~^U8=aNaJS6wv&PFi+<>Cs|L2^(NV7IsL5 z@Oo9w7L!%B02>LB%m@^hEO0ZKSjJmNG_aRrDW2dvnyRBSrHEcg=0EW4(bINk~IkCiU6`5D-)EeR!a zu`ECKmR0i*_B|c4x>zCxKBGyjN~EtHXCi^XeNvM0ZJ;$zNYPg(h!BdF?jj}I7okVbsi320phd4serKUgv&}Pad+tSYL5jFHgAC;STzIe`osn^uM6B zw3j@5x;gpR`tbZNv3iGEL?G#*E6Gm&QS(pdi{4V+C;nYAn{XP+!9Qp7e`*@QD)SZX z%RkTO^$gCPW6LQMLPwmQcX?M9|G|n&F0R?7Pm*-FTO&yM&Fhc=vZ#Y;kEcSk9Uti9 z^^rWW52Dk(g>q#=XQc$q5!`)ANrS~IYY`YP}P~a zR5?hmuB#CgvOmhH_32jn`HVIY*BDsm`U5=T-b9W#CT|ep7mIoK@?m`NFs`0K_j~{B z(ZVn+S>hA>>4ltGb_ z#dsL{a!ReJmr_UVMvhc9rQs6~cCeS`P^l|Y%%q4-Bj@_AAJ2#d^^zHvqMXU_S8qvp z;~9kixDcJU-&O!iNDv&^r`-y=77Y5!sj5GAI49*xt`#`UA5Usq;0-T*Xk0Swex}c=ON^H_T71 z>~_Cygo%YD112F)L9H5bBa1nix#x3{q%4BAhm57I*g>yU$vH&!i_2C5x-C#jh13Qt z<$kkWL5_8#kGuMQ0Tx_uI#bWqhLqPhbux4Pg^hHbQbS2^kHsFN2m$T%Tr%eX_CmPY zbfuEB27*SDx^WcbqHzQiOXGho6LlpIpbTudvG?9wo7y~CEL57=)&&^S_@@28)5Vj2 zj_E3H0$Et|$cW_88i}T~8Ej~j0e#dQ5ImcKP~*4LU`*!v7M#NFeMhG?$e<|Ok&o*r zLesxe1PCtUG1G;M)G4%2FLWvQaA^543)K^v4{btOr^6K8qTpG#@aYNG!*=AxHXosqOyx^ens zf_jwE96~(OPOiiyONtIl$^iFjYWbLIke{4jv-piG`NG+#a;Q(~de3`vF*rpQJ|%5~ zSl=$3Y1SO!GkqYSORAmPurTc{OmL>rbTmv=Bw!l`L;fN$my%9anpslaN!`#J2A9?>&4| zn@x5co@c>dJ^fz7o}nXoF^F9pnt%BHS%v>M6wTYN2J{5q<6d`o%H@LaX(RekyiH+7 z%oSC2T(h%&>1?!3D*}mstgz zUy?m0Uv0K2Lmp-0_2D zPzoADq#e^`JJmYG6_pmbP{^sKg~t<*zuflYcoT!#Z|iO5ojpR@!&BqO`3EGKPMqH5 zFQChCm&#O@vaPQ(u>T-hZ|kx)q5GOA*Q}{fS2C~Eu84Yu6^p;-N>(RCa%-2Q{`Kw_ zL$*;J*T@E^ehX(=&l-ggKmuKH$s!f?f5Htx~7!9;jeOPzQ%Wu8LZMIydtIg6a zQ8aEg1{2*yZD~sFb1sV8I{R%*lg!}?aMp?5KQire>pRqSp9$+S4aC#lAw$mDDiWGtSkQ+Y>rjE1F0R?SLzD?^_y})omgV`+5GU2UIE%& zkWezk?Y{qyUI9*x!_cMc*z0lsyclS4UWY^xCb?So|Nb55RB)+m+^qb?|B4+`ke>3g z&qnEAnusrSsocs$$-nM|31}w`TEiRv9Tiv2hq?^Is8`hgcxk|$yo6*IF`ug=|GnWQ zc5o@0y4mmMfA6FL;;Pf853<6n0o2HwAOQvRoZsWY-V3xDw0^%y;T Td_4*Az(0CgMw<2Nj* Date: Thu, 11 Aug 2022 12:03:20 +0900 Subject: [PATCH 2/3] init --- build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 61a3c4c..0357b60 100644 --- a/build.gradle +++ b/build.gradle @@ -23,8 +23,7 @@ sonarqube { property "sonar.host.url", "https://sonarcloud.io" property "sonar.sourceEncoding", "UTF-8" property "sonar.sources", "." - property "sonar.exclusions", "**/node_modules/**, **/cdk.out/**, **/*.java" - property "sonar.inclusions", "**/Dockerfile,**/Jenkinsfile*" + property "sonar.exclusions", "**/node_modules/**, **/cdk.out/**, **/*.java, **/*.jar" property "sonar.cpd.exclusions", "**/*index.ts" property "sonar.issue.ignore.multicriteria", "e1" property "sonar.issue.ignore.multicriteria.e1.ruleKey", "typescript:S1848" From 64529622f0a2de11f1683bbe538d3840e4a8959f Mon Sep 17 00:00:00 2001 From: engel80 Date: Thu, 11 Aug 2022 13:07:15 +0900 Subject: [PATCH 3/3] Move the ecs-fargate-cdk repo to org --- vpc/lib/vpc-stack.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vpc/lib/vpc-stack.ts b/vpc/lib/vpc-stack.ts index 3066420..002947e 100644 --- a/vpc/lib/vpc-stack.ts +++ b/vpc/lib/vpc-stack.ts @@ -10,10 +10,11 @@ export class VpcStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); + const cidr = `10.100.0.0/16`; const vpc = new ec2.Vpc(this, 'Vpc', { maxAzs: 3, natGateways: 3, - cidr: '10.100.0.0/16', + cidr, subnetConfiguration: [ { cidrMask: 20,