From 19630980d26eafd02ffeca781c31cf1bc2c8c3e9 Mon Sep 17 00:00:00 2001 From: Robert Hoffmann Date: Wed, 10 Feb 2021 12:44:08 +0000 Subject: [PATCH 1/7] Adding resource type for VS Code Remote Development --- .../.aws-sam/build.toml | 7 + .../.devcontainer/Dockerfile | 67 + .../.devcontainer/devcontainer.json | 35 + .../VSCodeRemoteDevelopment/.gitignore | 30 + resource-types/VSCodeRemoteDevelopment/.npmrc | 1 + .../VSCodeRemoteDevelopment/.rpdk-config | 11 + .../.vscode/settings.template.json | 4 + .../VSCodeRemoteDevelopment/Dockerfile | 82 + .../VSCodeRemoteDevelopment/README.md | 173 + .../awssamples-devtools-devinstance.json | 73 + .../cloudformation/template.json | 24 + .../VSCodeRemoteDevelopment/docs/README.md | 85 + .../VSCodeRemoteDevelopment/env.template.json | 13 + .../inputs/inputs_1_create.json | 5 + .../inputs/inputs_1_invalid.json | 5 + .../inputs/inputs_1_update.json | 5 + .../VSCodeRemoteDevelopment/package-lock.json | 3541 +++++++++++++++++ .../VSCodeRemoteDevelopment/package.json | 35 + .../resource-role.yaml | 31 + .../sam-tests/create.json | 19 + .../sam-tests/create2.json | 20 + .../sam-tests/delete.json | 19 + .../sam-tests/delete2.json | 16 + .../sam-tests/list.json | 16 + .../sam-tests/read.json | 17 + .../sam-tests/update.json | 20 + .../sam-tests/update2.json | 20 + .../src/devinstance-app.ts | 8 + .../src/devinstance-stack.ts | 151 + .../src/devinstance.ts | 13 + .../VSCodeRemoteDevelopment/src/handlers.ts | 414 ++ .../VSCodeRemoteDevelopment/src/models.ts | 78 + .../VSCodeRemoteDevelopment/template.yml | 33 + .../VSCodeRemoteDevelopment/tsconfig.json | 19 + 34 files changed, 5090 insertions(+) create mode 100644 resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml create mode 100644 resource-types/VSCodeRemoteDevelopment/.devcontainer/Dockerfile create mode 100644 resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json create mode 100644 resource-types/VSCodeRemoteDevelopment/.gitignore create mode 100644 resource-types/VSCodeRemoteDevelopment/.npmrc create mode 100644 resource-types/VSCodeRemoteDevelopment/.rpdk-config create mode 100644 resource-types/VSCodeRemoteDevelopment/.vscode/settings.template.json create mode 100644 resource-types/VSCodeRemoteDevelopment/Dockerfile create mode 100644 resource-types/VSCodeRemoteDevelopment/README.md create mode 100644 resource-types/VSCodeRemoteDevelopment/awssamples-devtools-devinstance.json create mode 100644 resource-types/VSCodeRemoteDevelopment/cloudformation/template.json create mode 100644 resource-types/VSCodeRemoteDevelopment/docs/README.md create mode 100644 resource-types/VSCodeRemoteDevelopment/env.template.json create mode 100644 resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_create.json create mode 100644 resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_invalid.json create mode 100644 resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_update.json create mode 100644 resource-types/VSCodeRemoteDevelopment/package-lock.json create mode 100644 resource-types/VSCodeRemoteDevelopment/package.json create mode 100644 resource-types/VSCodeRemoteDevelopment/resource-role.yaml create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/create.json create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/create2.json create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/delete.json create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/delete2.json create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/list.json create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/read.json create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/update.json create mode 100644 resource-types/VSCodeRemoteDevelopment/sam-tests/update2.json create mode 100755 resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts create mode 100644 resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts create mode 100644 resource-types/VSCodeRemoteDevelopment/src/devinstance.ts create mode 100644 resource-types/VSCodeRemoteDevelopment/src/handlers.ts create mode 100644 resource-types/VSCodeRemoteDevelopment/src/models.ts create mode 100644 resource-types/VSCodeRemoteDevelopment/template.yml create mode 100644 resource-types/VSCodeRemoteDevelopment/tsconfig.json diff --git a/resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml b/resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml new file mode 100644 index 0000000..4c7df2c --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml @@ -0,0 +1,7 @@ +# This file is auto generated by SAM CLI build command + +[build_definitions] +[build_definitions.eb6f63fc-826b-4055-a03d-cbde975fc651] +codeuri = "./" +runtime = "nodejs12.x" +functions = ["TestEntrypoint", "TypeFunction"] diff --git a/resource-types/VSCodeRemoteDevelopment/.devcontainer/Dockerfile b/resource-types/VSCodeRemoteDevelopment/.devcontainer/Dockerfile new file mode 100644 index 0000000..f84f5ac --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/.devcontainer/Dockerfile @@ -0,0 +1,67 @@ +FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu-18.04 + +# get back to root because we like danger +USER 0 +ENV HOME=/root + +# Get to latest versions of all packages +RUN apt-get update && apt-get -y upgrade --no-install-recommends + +# Install common dependencies +RUN apt-get -y install --no-install-recommends \ + build-essential \ + git \ + openssh-client \ + less \ + iproute2 \ + procps \ + curl \ + wget \ + unzip \ + nano \ + jq \ + lsb-release \ + ca-certificates \ + apt-transport-https \ + dialog \ + gnupg2 \ + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu[0-9][0-9] \ + liblttng-ust0 \ + libstdc++6 \ + zlib1g \ + locales + +# Node.js +RUN curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - \ + && sudo apt-get install -y nodejs + +# Python +RUN apt install -y software-properties-common \ + && add-apt-repository -y ppa:deadsnakes/ppa \ + && apt-get -y install --no-install-recommends python3.7 python3-pip + +# Docker +RUN apt-get install -y apt-transport-https ca-certificates curl lsb-release \ + && curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | apt-key add - 2>/dev/null \ + && echo "deb [arch=amd64] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list \ + && apt-get update \ + && apt-get install -y docker-ce-cli \ + && LATEST_COMPOSE_VERSION=1.25.5 curl -sSL "https://github.com/docker/compose/releases/download/${LATEST_COMPOSE_VERSION}/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/docker-compose + +# AWS CLI v2 +RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \ + && unzip awscliv2.zip \ + && ./aws/install \ + && rm -rf awscliv2.zip aws + +# CDK +RUN npm install -g aws-cdk && npm install -g typescript + +# Cleanup + RUN apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json b/resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json new file mode 100644 index 0000000..f1b9a2f --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json @@ -0,0 +1,35 @@ +{ + "name": "AWS Cloud Dev Container", + "dockerFile": "Dockerfile", + // "image": "mcr.microsoft.com/vscode/devcontainers/base:ubuntu-18.04", + + // Use 'settings' to set *default* container specific settings.json values on container create. + "settings": { + "terminal.integrated.shell.linux": "/bin/bash" + }, + + // Add the IDs of extensions you want installed when the container is created in the array below. + "extensions": [ + "ms-python.python", + "vscode-snippet.snippet", + "4tron.stack-overflow-view", + "kenhowardpdx.vscode-gist", + "aws-amplify.aws-amplify-vscode", + "amazonwebservices.aws-toolkit-vscode", + "aws-scripting-guy.cform", + "ms-azuretools.vscode-docker" + ], + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + "forwardPorts": [80], + + "workspaceFolder": "/mnt/efs/fs1/workspace", + "workspaceMount": "source=/mnt/efs/fs1/workspace,target=/mnt/efs/fs1/workspace,type=bind,consistency=cached", + + // Mounts Docker socket into the container so that you can use Docker. + "mounts": [ + "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind", + "source=/mnt/efs/fs1/home,target=/root,type=bind,consistency=cached", + "source=/mnt/efs/fs1/docker_init,target=/docker_init,type=bind,consistency=cached", + ] +} diff --git a/resource-types/VSCodeRemoteDevelopment/.gitignore b/resource-types/VSCodeRemoteDevelopment/.gitignore new file mode 100644 index 0000000..fac9a0d --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/.gitignore @@ -0,0 +1,30 @@ +# Distribution / packaging +build/ +dist/ + +# Unit test / coverage reports +.cache +.hypothesis/ +.pytest_cache/ + +# RPDK logs +rpdk.log + +# Node.js +node_modules/ +coverage/ + +# CDK +cdk.out/ + +# cfn cli build output +awssamples-devtools-devinstance.zip + +# personal VS Code config +.vscode/settings.json + +# env file for local testing +env.json + +# envrc +.envrc \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/.npmrc b/resource-types/VSCodeRemoteDevelopment/.npmrc new file mode 100644 index 0000000..bed0a38 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/.npmrc @@ -0,0 +1 @@ +optional = true diff --git a/resource-types/VSCodeRemoteDevelopment/.rpdk-config b/resource-types/VSCodeRemoteDevelopment/.rpdk-config new file mode 100644 index 0000000..536d99f --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/.rpdk-config @@ -0,0 +1,11 @@ +{ + "typeName": "AWSSamples::Devtools::Devinstance", + "language": "typescript", + "runtime": "nodejs12.x", + "entrypoint": "dist/handlers.entrypoint", + "testEntrypoint": "dist/handlers.testEntrypoint", + "settings": { + "useDocker": true, + "protocolVersion": "2.0.0" + } +} diff --git a/resource-types/VSCodeRemoteDevelopment/.vscode/settings.template.json b/resource-types/VSCodeRemoteDevelopment/.vscode/settings.template.json new file mode 100644 index 0000000..693d3ea --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/.vscode/settings.template.json @@ -0,0 +1,4 @@ +// make a copy of this file as .vscode/settings.json and set your SSH URI +{ + "docker.host": "ssh://ec2-user@" +} diff --git a/resource-types/VSCodeRemoteDevelopment/Dockerfile b/resource-types/VSCodeRemoteDevelopment/Dockerfile new file mode 100644 index 0000000..3f4648f --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/Dockerfile @@ -0,0 +1,82 @@ +FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu-18.04 + +# get back to root because we like danger +USER 0 +ENV HOME=/root + +# Get to latest versions of all packages +RUN apt-get update && apt-get -y upgrade --no-install-recommends + +# Install common dependencies +RUN apt-get -y install --no-install-recommends \ + build-essential \ + git \ + openssh-client \ + less \ + iproute2 \ + procps \ + curl \ + wget \ + unzip \ + nano \ + jq \ + lsb-release \ + ca-certificates \ + apt-transport-https \ + dialog \ + gnupg2 \ + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu[0-9][0-9] \ + liblttng-ust0 \ + libstdc++6 \ + zlib1g \ + locales + +# Node.js +RUN curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - \ + && sudo apt-get install -y nodejs + +# Python +RUN apt install -y software-properties-common \ + && add-apt-repository -y ppa:deadsnakes/ppa \ + && apt-get -y install --no-install-recommends python3.7 python3-pip + +# Docker +RUN apt-get install -y apt-transport-https ca-certificates curl lsb-release \ + && curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | apt-key add - 2>/dev/null \ + && echo "deb [arch=amd64] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list \ + && apt-get update \ + && apt-get install -y docker-ce-cli \ + && LATEST_COMPOSE_VERSION=1.25.5 curl -sSL "https://github.com/docker/compose/releases/download/${LATEST_COMPOSE_VERSION}/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose \ + && chmod +x /usr/local/bin/docker-compose + +# AWS CLI v2 +RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \ + && unzip awscliv2.zip \ + && ./aws/install \ + && rm -rf awscliv2.zip aws + +# CDK +RUN npm install -g aws-cdk && npm install -g typescript + +# SAM CLI & AWS CloudFormation Resource Provider TypeScript Plugin +RUN curl https://raw.githubusercontent.com/Homebrew/install/master/install.sh -o brew.sh \ + && sed -i "s/abort \"Don't run this as root\!\"/echo \"Don't run this as root\!\"/" brew.sh \ + && chmod +x brew.sh \ + && ./brew.sh \ + && rm -rf brew.sh \ + && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv) \ + && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile \ + && brew tap aws/tap \ + && brew install aws-sam-cli \ + && pip3 install setuptools \ + && pip3 install wheel \ + && pip3 install git+https://github.com/eduardomourar/cloudformation-cli-typescript-plugin.git@v0.5.0#egg=cloudformation-cli-typescript-plugin \ + && pip3 install cloudformation-cli==0.1.* + +# Cleanup + RUN apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/README.md b/resource-types/VSCodeRemoteDevelopment/README.md new file mode 100644 index 0000000..a057a24 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/README.md @@ -0,0 +1,173 @@ +# Managed VS Code Remote Dev Environments + +The `AWSSamples::Devtools::Devinstance` resource manages an EC2 instance and additional services that make a great dev environment for the [Visual Studio Code Remote - Containers](https://code.visualstudio.com/docs/remote/containers) extension. VS Code and other IDEs like Cloud9 are popularizing remote dev environments, which in general offer the following benefits: + +- Ability to acquire computing resources (CPU, RAM, GPU...) as needed and tear them down when idle +- Don't be restricted by the hardware limits of the local machine +- Try different CPU architectures and hardware variants with minimal effort (e.g. ARM) +- Enjoy a consistent developer experience from any device +- Easily recreate the dev environment with automation if something went terribly wrong + +The `Devinstance` resource supports this in the following ways: + +- **The developer can choose from a wide variety of instance types**, depending on the requirements (currently, only instances with hibernate support are allowed, although technically anything should work) + +- **Dev environment as code:** With [VS Code Remote Containers]((https://code.visualstudio.com/docs/remote/containers)), the developer connects to the instance via VS Code, which builds and starts a container defined by a `Dockerfile` in the developer's local project directory. The instance is preconfigured with Docker to allow VS Code to use it as a remote environment. + +- **The instance is cattle, but your data is persistent:** The developer can update the `Devinstance` resource to change the instance type, while not losing any data. This is possible because a persistent EBS volume is used to store the developer's workspace that is mounted into the Docker container. This volume is automatically moved between instances and is protected from deletion (will remain even after the resource is deleted). + +- **The size of the EBS volume can be increased at any time** by updating the resource (currently triggers the recreation of the instance, which might feel like overkill but is a nice way to stop all processes before changing volume properties). The filesystem size is extendend automatically. + +- **The instance has a stable hostname, even throughout recreation**, so the configuration in VS Code (the SSH URI) always stays the same. + +## Installing the resource type + +This resource type is built with the [community Typescript plugin for CloudFormation](https://github.com/eduardomourar/cloudformation-cli-typescript-plugin): + +``` +pip install git+https://github.com/eduardomourar/cloudformation-cli-typescript-plugin.git@v0.5.0#egg=cloudformation-cli-typescript-plugin +``` + +Note that as of this writing, the Typescript plugin does only support cfn cli version 0.1.x. You will get an error during `cfn submit` when you try to use a higher version. + +After checking out this repository, + +``` +git clone https://github.com/hypescaler/aws-vscode-remote-containers.git +``` + + a complete build and submission can be started with: + +``` +# equals "npm install && npm run build && cfn submit --set-default" +npm run all + +``` + +### Installing - the Docker way + +The included Dockerfile has everything to build and submit the resource type. Provided that you are running on MacOS or Linux and have your AWS CLI config in `~/.aws`: + +``` +git clone https://github.com/hypescaler/aws-vscode-remote-containers.git +cd aws-vscode-remote-containers +docker build . -t dev-container +SRC=$(pwd) && docker run --rm -it -e SRC=$SRC -v /var/run/docker.sock:/var/run/docker.sock -v $SRC:$SRC -v ~/.aws:/root/.aws dev-container /bin/bash -c "cd \$SRC && eval \$(/home/linuxbrew/.linuxbrew/bin/brew shellenv) && npm run all" +``` + +If you want to use a specific AWS profile, you can add `-e AWS_PROFILE=your_profile_name` to the docker command. + +## Installing and preparing VS Code + +1) You need to have `ssh` installed. +2) [Install VS Code](https://code.visualstudio.com/docs/setup/setup-overview). +3) [Install the Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension. + +## Usage + +You need to have a [key pair](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) set up. Put the name of the key pair into the `Keypair` property in `cloudformation/template.json`. The key must be known by your ssh client. + +``` +aws cloudformation create-stack --stack-name myteststack01 --template-body file://cloudformation/template.json +``` + +Get the output of the stack to find the SSH URI of your instance: + +``` +aws cloudformation describe-stacks --stack-name myteststack01 + + ... + "Outputs": [ + { + "OutputKey": "ssh", + "OutputValue": "ssh://ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com" + } + ], + ... +``` + +Connect to the instance once via your ssh client so that you can accept the fingerprint: + +``` +ssh ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com +``` + +In this code repository, open `.vscode/settings.json` and set your SSH URI (e.g. `ssh://ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com`) for `docker.host`. + +Open this repository in VS Code, or, if you already did that, restart VS Code so that the config changes are applied. + +You should now be able to open your remote environment. Click the green icon in the bottom left of the IDE and choose *Remote-Containers: Reopen in Container*. VS Code will connect with the instance, build and run a container as specified by the `Dockerfile` and `devcontainer.json` in the `.devcontainer` directory. You can customize this Dockerfile to your liking. + +Once done, you will be greeted with an empty workspace - that's expected, there is no way to sync your local files with a remote environment. You'd now check out the source code for whatever project you are working on. + +To open a shell, hit F1 and start typing "terminal", then select *Terminal: Create New Integrated Terminal*. + +Your workspace and home directory are backed by the mounted EBS volume, so as long as you put your data there, it will persist even if the container stops or is rebuilt. + +## Hibernate your instance + +You can hibernate your instance to save costs via the AWS Console or other well-known means. + +## Reconfiguring your `Devinstance` resource + +You can + +- change the instance type, e.g. from `m4.xlarge` to `m4.2xlarge` (others should work, too) +- increase the EBS volume size +- change your key pair name + +in `template.json` and then update your stack: + +``` +aws cloudformation update-stack --stack-name myteststack01 --template-body file://cloudformation/template.json +``` + +Any update will result in the recreation of the instance. After that, you will need to clean your `known_hosts` file from the old fingerprint and connect once via your SSH client to accept the new one. + +After the update is finished, you will find that the container starts quicker than the first time (because the Docker images are preserved on the EBS volume, too) and all your files in the workspace are still there. + +## Under the hood: Using CDK to simplify resource management + +The resource handler uses CDK programmatically by defining a CDK App and then calling `app.synth()` to produce dynamic CloudFormation templates to manage the resources comprising a dev environment. Typically, resource handlers use the AWS SDK to create resources in an imperative way; an alternative is using a declarative approach via CDK and CloudFormation. The benefits of this approach are: + +- reuse existing CDK code or CloudFormation templates +- benefit from simpler resource configuration via CDK (a single `Devinstance` resource is already made up of 15 AWS resources) +- delegate the long-running task of standing up all resources in the correct order to CloudFormation +- easily map CloudFormation states and errors to your Resource Type +- debug your deployment by testing / sharing the CloudFormation template instead of your whole handler code and benefit from a large community of CloudFormation experts + +As CDK is invoked at runtime in the resource handler code, the CDK App code can react to arbitrary input values before synthesizing the CloudFormation template, thus enabling any reconfiguration of the template, e.g. depending on the current state of a resource. + +For example, in order to force a clean recreation of the EC2 instance when the instance type is changed (which is required because hibernate-enabled instances cannot change their type in-place), the CDK App code, when called, always adds a new UUID to the logical identifier of the instance, which results in CloudFormation seeing a new instance, while the old one is no longer present in the template. Such a behavior is hard to implement with plain CloudFormation templates, but the dynamic "pre-configuration" via CDK code enables almost any rearrangement of the template. + +It should be possible to derive a more generalized handler framework that could take any CDK App and expose it as a Resource Type. + +## Passing `cfn test` + +The run the tests, you need to pass a set of AWS credentials with full permissions. The tester is injecting credentials that aren't authorized to make IAM calls, which is required for the CloudFormation template to be deployed. + +1. Make a copy of `env.template.json` as `env.json` and add an access key ID and secret access key (with full permissions) to it. +2. Start the funtion locally via `sam local start-lambda -n env.json` +3. Run the tests with `cfn test` + +**Note: Make sure to delete the superfluous EBS volumes afterwards, as they are not deleted with the resource.** + +## Using the CDK stack directly + +You can apply the stack directly for testing purposes (or because you do not want to consume it as a Resource Type). + +``` +npm install +npm run build + +# After that, you can use cdk cli commands like: + +# Create the CloudFormation template +cdk --app dist/devinstance-app.js synth DevinstanceStack + +# Show diff to currently deployed stack +cdk --app dist/devinstance-app.js diff DevinstanceStack + +# Deploy the stack +cdk --app dist/devinstance-app.js deploy DevinstanceStack +``` \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/awssamples-devtools-devinstance.json b/resource-types/VSCodeRemoteDevelopment/awssamples-devtools-devinstance.json new file mode 100644 index 0000000..7ba7c85 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/awssamples-devtools-devinstance.json @@ -0,0 +1,73 @@ +{ + "typeName": "AWSSamples::Devtools::Devinstance", + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties": { + "UID": { + "description": "The ID of the developer instance", + "type": "string" + }, + "InstanceType": { + "description": "The EC2 Instance Type of developer instance. You can only select instance types that support hibernation", + "type": "string", + "default": "m4.xlarge", + "enum": ["c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "c5.large", "c5.xlarge", "c5.2xlarge", "c5.4xlarge", + "c5.9xlarge", "c5.12xlarge", "c5.18xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m5.large", "m5.xlarge", + "m5.2xlarge", "m5.4xlarge", "m5.8xlarge", "r4.large", "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r5.large", "r5.xlarge", + "r5.2xlarge", "r5.4xlarge", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "t2.xlarge", "t2.2xlarge"] + }, + "DiskSize": { + "description": "The persistent disk size in Gibibytes", + "type": "integer", + "default": 100, + "minimum" : 1 + }, + "Keypair": { + "description": "The name of the SSH keypair to connect to your dev environment", + "type": "string" + }, + "SSH": { + "description": "The SSH URI for your dev environment", + "type": "string" + } + + }, + "additionalProperties": false, + "required": [ + "Keypair" + ], + "readOnlyProperties": [ + "/properties/UID", + "/properties/SSH" + ], + "primaryIdentifier": [ + "/properties/UID" + ], + "handlers": { + "create": { + "permissions": [ + "*" + ] + }, + "read": { + "permissions": [ + "*" + ] + }, + "update": { + "permissions": [ + "*" + ] + }, + "delete": { + "permissions": [ + "*" + ] + }, + "list": { + "permissions": [ + "*" + ] + } + } +} diff --git a/resource-types/VSCodeRemoteDevelopment/cloudformation/template.json b/resource-types/VSCodeRemoteDevelopment/cloudformation/template.json new file mode 100644 index 0000000..e62a09e --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/cloudformation/template.json @@ -0,0 +1,24 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "The template creates a new DevInstance", + "Resources": { + "MyInstance": { + "Type": "AWSSamples::Devtools::Devinstance", + "Properties": { + "InstanceType":"m4.xlarge", + "DiskSize": 100, + "Keypair" : "dev" + } + } + }, + "Outputs": { + "ssh": { + "Value": { + "Fn::GetAtt": [ + "MyInstance", + "SSH" + ] + } + } + } +} \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/docs/README.md b/resource-types/VSCodeRemoteDevelopment/docs/README.md new file mode 100644 index 0000000..6d25563 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/docs/README.md @@ -0,0 +1,85 @@ +# AWSSamples::Devtools::Devinstance + +An example resource schema demonstrating some basic constructs and validation rules. + +## Syntax + +To declare this entity in your AWS CloudFormation template, use the following syntax: + +### JSON + +
+{
+    "Type" : "AWSSamples::Devtools::Devinstance",
+    "Properties" : {
+        "InstanceType" : String,
+        "DiskSize" : Integer,
+        "Keypair" : String,
+    }
+}
+
+ +### YAML + +
+Type: AWSSamples::Devtools::Devinstance
+Properties:
+    InstanceType: String
+    DiskSize: Integer
+    Keypair: String
+
+ +## Properties + +#### InstanceType + +The EC2 Instance Type of developer instance. You can only select instance types that support hibernation + +_Required_: No + +_Type_: String + +_Allowed Values_: c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c5.large | c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.12xlarge | c5.18xlarge | m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge | m5.large | m5.xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | r4.large | r4.xlarge | r4.2xlarge | r4.4xlarge | r5.large | r5.xlarge | r5.2xlarge | r5.4xlarge | t2.nano | t2.micro | t2.small | t2.medium | t2.large | t2.xlarge | t2.2xlarge + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### DiskSize + +The persistent disk size in Gibibytes + +_Required_: No + +_Type_: Integer + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### Keypair + +The name of the SSH keypair to connect to your dev environment + +_Required_: Yes + +_Type_: String + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +## Return Values + +### Ref + +When you pass the logical ID of this resource to the intrinsic `Ref` function, Ref returns the UID. + +### Fn::GetAtt + +The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values. + +For more information about using the `Fn::GetAtt` intrinsic function, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html). + +#### UID + +The ID of the developer instance + +#### SSH + +The SSH URI for your dev environment + diff --git a/resource-types/VSCodeRemoteDevelopment/env.template.json b/resource-types/VSCodeRemoteDevelopment/env.template.json new file mode 100644 index 0000000..75aec32 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/env.template.json @@ -0,0 +1,13 @@ +{ + "TestEntrypoint" : { + "HY_OVERRIDE_CREDENTIALS" : "yes", + "HY_ACCESS_KEY_ID" : "-", + "HY_SECRET_ACCESS_KEY" : "-" + }, + "TypeFunction" : { + "HY_OVERRIDE_CREDENTIALS" : "yes", + "HY_ACCESS_KEY_ID" : "-", + "HY_SECRET_ACCESS_KEY" : "-" + } + +} \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_create.json b/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_create.json new file mode 100644 index 0000000..b0a014f --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_create.json @@ -0,0 +1,5 @@ +{ + "InstanceType":"m4.xlarge", + "DiskSize": 100, + "Keypair" : "dev" +} \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_invalid.json b/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_invalid.json new file mode 100644 index 0000000..f93ba0d --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_invalid.json @@ -0,0 +1,5 @@ +{ + "InstanceType":"notAnInstance", + "DiskSize": 100, + "Keypair" : "dev" +} \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_update.json b/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_update.json new file mode 100644 index 0000000..cfb9055 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/inputs/inputs_1_update.json @@ -0,0 +1,5 @@ +{ + "InstanceType":"m4.2xlarge", + "DiskSize": 200, + "Keypair" : "dev" +} \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/package-lock.json b/resource-types/VSCodeRemoteDevelopment/package-lock.json new file mode 100644 index 0000000..9473cdc --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/package-lock.json @@ -0,0 +1,3541 @@ +{ + "name": "awssamples-devtools-devinstance", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@aws-cdk/assets": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.58.0.tgz", + "integrity": "sha512-tycOCYRYNkG5Xem1FeNgk8h1kXEjrh9wzQ4hfj9KDn058DATb+H9hceUDj8lu/sdn0UeacWsPR/+m1mkNnlXMQ==", + "requires": { + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-apigateway": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.58.0.tgz", + "integrity": "sha512-ASluDLw9weL3bb/7p0Mh48h3RdbMyisDm0IxuOvKL8OIhD1McvQRafUlI8qJ/aVqndv9xDApkvdLVyEIxTj3rg==", + "requires": { + "@aws-cdk/assets": "1.58.0", + "@aws-cdk/aws-certificatemanager": "1.58.0", + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-s3-assets": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-applicationautoscaling": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.58.0.tgz", + "integrity": "sha512-TTcwbF7hxIjSH+1jSetk5vBJFrKbRKp6Umr8+jfQqtLWnfTL4xOaL8KOUSfKrqIs4O8sgNaZq5ajqXsHARlI3g==", + "requires": { + "@aws-cdk/aws-autoscaling-common": "1.58.0", + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-autoscaling": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.58.0.tgz", + "integrity": "sha512-eljgD9Lz4aZPsUNyEjDaMvz0/mmYN12mr2y8nzFeJvIlpgc885giRQWnAleWWWcUIOeV8v5ITpnDn6m/LNV4yg==", + "requires": { + "@aws-cdk/aws-autoscaling-common": "1.58.0", + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-elasticloadbalancing": "1.58.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-sns": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-autoscaling-common": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.58.0.tgz", + "integrity": "sha512-HBYoaZFqnEXGooxWI7w3puk9PlmrpCtXK6mL8bycA+9B3nvxaADLO2q54me9lhlIO7jVE1D6UsIyc75H48NOEw==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-autoscaling-hooktargets": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-hooktargets/-/aws-autoscaling-hooktargets-1.58.0.tgz", + "integrity": "sha512-EB/cj7TW3LSh7HeyURJ2ZY9pwH3+chQ//BkNXKKFvtaTsIVV4syVbhpknnRhpbi9FT4s/WKogz/2GgOxACJUFA==", + "requires": { + "@aws-cdk/aws-autoscaling": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-sns": "1.58.0", + "@aws-cdk/aws-sns-subscriptions": "1.58.0", + "@aws-cdk/aws-sqs": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-certificatemanager": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.58.0.tgz", + "integrity": "sha512-g/eLsYlLx7KCQ3j7koAZMM4JaizdQahl2f2Bwsahqzb+yOkE456GcxxAvFp5TH8+HIuc3VqU7l9FKkRpBlThCg==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-route53": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-cloudformation": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.58.0.tgz", + "integrity": "sha512-rfHsa2jLYAdMHCKLm4y6th8fVT4qZR7bX1H83dLFEhkzWVYu8FoT8Rjzv8Pgf3U9+Ju3fR9VBh5SHm65d2xPLw==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-sns": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-cloudfront": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.58.0.tgz", + "integrity": "sha512-/aK7BtWIQMlH4PGlOpSGafQciabCMBbuQQTQJ4qtjrzyQTWYEumGLre1UliBV+4xXa33fLwNg76Crxd4RAd3mA==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-cloudwatch": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.58.0.tgz", + "integrity": "sha512-tbK+nc5F+QvBHzetL6KoaWVVIfmTEPeV6pLJlyCnT1FV3C91hU8RIOdKLfPMh9yxpbxjy4gmZFEfzqgXjb++aA==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-codeguruprofiler": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.58.0.tgz", + "integrity": "sha512-UlJ1BKXjKmKJc5nwV1ePJuzZk60s03R9+HtLg64RjbnIkuQC0No2fNoIxfMkcvcfx64FltVgh9sl8+dn2K0gxA==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0" + } + }, + "@aws-cdk/aws-cognito": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.58.0.tgz", + "integrity": "sha512-hFtzTsldKTuiZs3v/IrRMpTLwZSkPMdNCE2sEWM1jOOgkwj7YaWQjQKx8BqZlOkQ41zWxJLUc4QVlEukL5bqzw==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/custom-resources": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-ec2": { + "version": "npm:@rhaws/aws-ec2@1.58.0", + "resolved": "https://registry.npmjs.org/@rhaws/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-S/YTk8FdyVK7e6EQmDz1feMV4qhOHWf907+mJhf7hoZSgqhgXF9QYFHsYX9usCIuF5hlBizGv2GeYsgDl3j6+g==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-ecr": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.58.0.tgz", + "integrity": "sha512-afO5l/J6JL7DZsAAQL38HInfmqgrcbfNpMMK+jNbJoyZYuGx8O2WX65IwlCa62y0x3lWbp1I5XQoDwnM1hAMQw==", + "requires": { + "@aws-cdk/aws-events": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/custom-resources": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-ecr-assets": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.58.0.tgz", + "integrity": "sha512-Klc0jv3VwPHyfujkBs1bYJmRK5rjlAUgkMIZNarXsVDkhCqQ/0MBpldvloFA2lC7Mv0V1Pz1PEf/pR2hLuU8vQ==", + "requires": { + "@aws-cdk/assets": "1.58.0", + "@aws-cdk/aws-ecr": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2", + "minimatch": "^3.0.4" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@aws-cdk/aws-ecs": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecs/-/aws-ecs-1.58.0.tgz", + "integrity": "sha512-35ghq7gNjqBhEwUEhKVcFu6gqHS8fY0sVNCM6gyMA/tHTTqfJoDJ6r1SoOfLsS1PQmjrJ0SNNn3Ky5w2zC/ThQ==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.58.0", + "@aws-cdk/aws-autoscaling": "1.58.0", + "@aws-cdk/aws-autoscaling-hooktargets": "1.58.0", + "@aws-cdk/aws-certificatemanager": "1.58.0", + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-ecr": "1.58.0", + "@aws-cdk/aws-ecr-assets": "1.58.0", + "@aws-cdk/aws-elasticloadbalancing": "1.58.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-route53": "1.58.0", + "@aws-cdk/aws-route53-targets": "1.58.0", + "@aws-cdk/aws-secretsmanager": "1.58.0", + "@aws-cdk/aws-servicediscovery": "1.58.0", + "@aws-cdk/aws-sns": "1.58.0", + "@aws-cdk/aws-sqs": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-efs": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.58.0.tgz", + "integrity": "sha512-MoZ/lN1N7AdC5UoJ6yYCBcJLFQd9lqwv50OA4/TuRLdZh1yCneMiTw2Njr323pB9rzqAlKM16wuE3c1IL45Egw==", + "requires": { + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-elasticloadbalancing": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.58.0.tgz", + "integrity": "sha512-d6TsGGFjX9vGpkc9duCc/zgjOSYgmXCKDuq6FqKkIvyKummyAWbZK+EZ3JhCJu5mMmsiNrSYI98+JEENt6zrfw==", + "requires": { + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-elasticloadbalancingv2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.58.0.tgz", + "integrity": "sha512-XOIEFdrabI5Syp+5pQcnv0L+KhV0zTGNjxHmq3EuLAWPHh5yIenmtijOBr/LVMXGY5eciG5lYCBzC3W/i/HPGg==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.58.0", + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-events": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.58.0.tgz", + "integrity": "sha512-U+Km4D/BuQuF/SCzDJiA6+92rbiEoTR5cWbkn03cL4dy26db1kTugLwhfTvr66JKIAc8RW09w30rS5qL6arivA==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-iam": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.58.0.tgz", + "integrity": "sha512-hY/HtvWjkt6N1y5ZmcnzGKgcUjPqwJ2oO3l5di11HHVRmZhkbhM1tuI4LMNMVs1bUyZGjQApHt0+Qwyjzx2JuQ==", + "requires": { + "@aws-cdk/core": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-kms": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.58.0.tgz", + "integrity": "sha512-2scgHAqI5KX6JWmvlTf2oJZ1WQQlIKBkCJmxJT0y525o0hkVLMB2xUCMqA/CsTFt8j/RJ1jp8LOHedux4vyJXw==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-lambda": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.58.0.tgz", + "integrity": "sha512-j9DcUd7+zvGHueIrsd5SPlBKKbbYD+2Efxwh4iKu9SP84YZBm25RiwtWlEVcAyEKE144zu4FyIuhPKaJxQ5/bQ==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.58.0", + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-codeguruprofiler": "1.58.0", + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-efs": "1.58.0", + "@aws-cdk/aws-events": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-s3-assets": "1.58.0", + "@aws-cdk/aws-sqs": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-logs": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.58.0.tgz", + "integrity": "sha512-el18uIhK5t4bOtETvWvCfJU/yh3aTJscsN2nhHe0EiQ0L3TViwDUnKxwLHK+Eh+VHGjAQFUbidR0ygf+3q9I8Q==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-route53": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.58.0.tgz", + "integrity": "sha512-lgqNpCMR8F7z/eM2QiMmS44G4SwfY9K0X8sBfEQSzM07mnEGRr7chLVK7kYrBlGX/A/lnykhNnyF6VptZIHj3g==", + "requires": { + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-route53-targets": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.58.0.tgz", + "integrity": "sha512-FG7OXDTZEK5Jm1KFhmBsL9sKJDk4e7KoyJWckonhvVwgkyEBKYJ0V9RV1gcuRWYaaaej+MpVrTittqIPJ9fiCQ==", + "requires": { + "@aws-cdk/aws-apigateway": "1.58.0", + "@aws-cdk/aws-cloudfront": "1.58.0", + "@aws-cdk/aws-cognito": "1.58.0", + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-elasticloadbalancing": "1.58.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-route53": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-s3": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.58.0.tgz", + "integrity": "sha512-SrLctJLMUysik2olk6uoj7s5ND5DKiFYitSRpqLHheQMgfHp1KrLHz/hpCEn4V8stqnDjTkyi9W1T36YO8z0sw==", + "requires": { + "@aws-cdk/aws-events": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-s3-assets": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.58.0.tgz", + "integrity": "sha512-A+hfFxIq98deOVRCPlNB8eWx4OhNkcISozS9PlEJsK2OMWEJEbhCFINI19wMjPkrYdcDCSMI0kuBf6AxAXQDdA==", + "requires": { + "@aws-cdk/assets": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-sam": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.58.0.tgz", + "integrity": "sha512-TXjtcOUYxqjhF8fMBcVOMthLuIZOC2Bu08zwsSGlBuSPe9CV3AYAYccMZbF9T+dfi3WRTD9onnKPllc4ojD4kw==", + "requires": { + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-secretsmanager": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-secretsmanager/-/aws-secretsmanager-1.58.0.tgz", + "integrity": "sha512-/rLsJSdTBfJHeZMeFVK/Oa6e8xImNTyED8vGl8qVoi5fJfq95FUcT5fcgUJ5/dNWRl2C0gVPRrNOr2HsPsFMkQ==", + "requires": { + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-sam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-servicediscovery": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-servicediscovery/-/aws-servicediscovery-1.58.0.tgz", + "integrity": "sha512-PvdhyKK08OUMiEqKEOODiKRSVAUARVjMKeaEEy6bzccNFFeRbwMPcsThTuiRG9smYMgPUe10rBFLT54EQHH2SA==", + "requires": { + "@aws-cdk/aws-ec2": "1.58.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", + "@aws-cdk/aws-route53": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + }, + "dependencies": { + "@aws-cdk/aws-ec2": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", + "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-s3": "1.58.0", + "@aws-cdk/aws-ssm": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "constructs": "^3.0.2" + } + } + } + }, + "@aws-cdk/aws-sns": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.58.0.tgz", + "integrity": "sha512-4RDp8a95gh6gpz/F4batG2i2xCldDyjs38RlDyB4DC0ssT16g2AcBIZq1OCj2oy26kB9oJQSUDmV5aHfng9m6Q==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-events": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/aws-sqs": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-sns-subscriptions": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.58.0.tgz", + "integrity": "sha512-d+azz5bH2n/gnjLJAUV23awQIKZvhatynh2yKziOiwpIKcYq/W7IPRdCSM6LQl5kXybSNfXXHT//65MdH/khAQ==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-sns": "1.58.0", + "@aws-cdk/aws-sqs": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-sqs": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.58.0.tgz", + "integrity": "sha512-1MSnwMcCm336FnXzvQyEl46TFLuhduT+9FaTq+7skKq7q/SIPrHj5iB36cjAm4nuoUhP37uWFePQTXDjNhsyAA==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/aws-ssm": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.58.0.tgz", + "integrity": "sha512-z3pXuofqTevMl2r7AuSO83j2CP2Fvsqw4dw7yspk9qQMbVm9jA6XkyfA9n0rgqalr+5MDtLJE1VXDhMiHLQ0dQ==", + "requires": { + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-kms": "1.58.0", + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/cloud-assembly-schema": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.58.0.tgz", + "integrity": "sha512-uihmnZL76Yq/PrOpGRV4CX0Y0OLnVQbXnNpR0WSHfLn1gbBxzJIDik0HIGOzOhA6JckhKivouJswbephuug0Ug==", + "requires": { + "jsonschema": "^1.2.5", + "semver": "^7.2.2" + }, + "dependencies": { + "jsonschema": { + "version": "1.2.6", + "bundled": true + }, + "semver": { + "version": "7.3.2", + "bundled": true + } + } + }, + "@aws-cdk/core": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.58.0.tgz", + "integrity": "sha512-3omLo3fZABhumuPXpHj9Vq35MSbuZuWmtazLdnWZp7VAACR9wVxRYcdBu3hpetWRm4eXiwECx6cIfT5jtPMkIQ==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "constructs": "^3.0.2", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "at-least-node": { + "version": "1.0.0", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "fs-extra": { + "version": "9.0.1", + "bundled": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "bundled": true + }, + "jsonfile": { + "version": "6.0.1", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "universalify": { + "version": "1.0.0", + "bundled": true + } + } + }, + "@aws-cdk/custom-resources": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.58.0.tgz", + "integrity": "sha512-36jDoGOi3J/GdQ32eGY3HeFjZ5skY1NcH8ag/6gcTnZMufrC2Xkc5URe9Y3wD5CVVIc5vCDVJ8w5P0gRaG/Nmg==", + "requires": { + "@aws-cdk/aws-cloudformation": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/aws-lambda": "1.58.0", + "@aws-cdk/aws-logs": "1.58.0", + "@aws-cdk/aws-sns": "1.58.0", + "@aws-cdk/core": "1.58.0", + "constructs": "^3.0.2" + } + }, + "@aws-cdk/cx-api": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.58.0.tgz", + "integrity": "sha512-t1Q7fXtk8Ux/psz0zGXY9YZkJtPY7fGurMkrAwoLGpM3GCmBR+jRBYqSHG1Rtvle6H+JdVtd1Ocs/Odfaz3bYg==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "semver": "^7.2.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "bundled": true + } + } + }, + "@aws-cdk/region-info": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.58.0.tgz", + "integrity": "sha512-PAkoyPu4uxGEVTKYb1Tea6A0GoAfvC09iLfoIujHFNx38IdfrHm3X9Pn1995HvFJBuzLx1hv5AcGXOFVmwb8hg==" + }, + "@org-formation/tombok": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@org-formation/tombok/-/tombok-0.0.1.tgz", + "integrity": "sha512-6F0zitevY+H3VT3MVsAo4JFlDl5kfqnhGLUwXNc652/HYEBzMru5iLkTIF6+cp/lgvTWxQJQJzH4yoYja2f9Pg==" + }, + "@types/node": { + "version": "12.19.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.16.tgz", + "integrity": "sha512-7xHmXm/QJ7cbK2laF+YYD7gb5MggHIIQwqyjin3bpEGiSuvScMQ5JZZXPvRipi1MwckTQbJZROMns/JxdnIL1Q==", + "dev": true + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + }, + "autobind-decorator": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/autobind-decorator/-/autobind-decorator-2.4.0.tgz", + "integrity": "sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw==" + }, + "aws-cdk": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-1.58.0.tgz", + "integrity": "sha512-DPYhmVN1uiXHFeJfwqxqCR0eLcMzo9iTJjoFpo/yxGYzURpRnz2dZznWQqVecnkPvbXQ7Pd+h25/bSMpbFUBBA==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/cloudformation-diff": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "@aws-cdk/region-info": "1.58.0", + "archiver": "^4.0.2", + "aws-sdk": "^2.715.0", + "camelcase": "^6.0.0", + "cdk-assets": "1.58.0", + "colors": "^1.4.0", + "decamelize": "^4.0.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "json-diff": "^0.5.4", + "minimatch": ">=3.0", + "promptly": "^3.0.3", + "proxy-agent": "^3.1.1", + "semver": "^7.2.2", + "source-map-support": "^0.5.19", + "table": "^5.4.6", + "uuid": "^8.2.0", + "wrap-ansi": "^7.0.0", + "yaml": "^1.10.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "@aws-cdk/cfnspec": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.58.0.tgz", + "integrity": "sha512-ChOJagv2mhvcYXsjUJUC+8//Upzv+ZU1UjH/B2k0Izgkghq+CB2yCcjYQGr/KgRygTvsDRVKXiGjKBBl0kcSKQ==", + "requires": { + "md5": "^2.2.1" + } + }, + "@aws-cdk/cloud-assembly-schema": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.58.0.tgz", + "integrity": "sha512-uihmnZL76Yq/PrOpGRV4CX0Y0OLnVQbXnNpR0WSHfLn1gbBxzJIDik0HIGOzOhA6JckhKivouJswbephuug0Ug==", + "requires": { + "jsonschema": "^1.2.5", + "semver": "^7.2.2" + } + }, + "@aws-cdk/cloudformation-diff": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.58.0.tgz", + "integrity": "sha512-Dp0ZgF00Qvm9hciWs7DABKP4Y4Jm87w6Bl6T6SFw8fAKU8krFdYBPcv6AOw7YQV4TPzm4pzHMsZamGGKzI/elA==", + "requires": { + "@aws-cdk/cfnspec": "1.58.0", + "colors": "^1.4.0", + "diff": "^4.0.2", + "fast-deep-equal": "^3.1.3", + "string-width": "^4.2.0", + "table": "^5.4.6" + } + }, + "@aws-cdk/cx-api": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.58.0.tgz", + "integrity": "sha512-t1Q7fXtk8Ux/psz0zGXY9YZkJtPY7fGurMkrAwoLGpM3GCmBR+jRBYqSHG1Rtvle6H+JdVtd1Ocs/Odfaz3bYg==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "semver": "^7.2.2" + } + }, + "@aws-cdk/region-info": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.58.0.tgz", + "integrity": "sha512-PAkoyPu4uxGEVTKYb1Tea6A0GoAfvC09iLfoIujHFNx38IdfrHm3X9Pn1995HvFJBuzLx1hv5AcGXOFVmwb8hg==" + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "archiver": { + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/archiver/-/archiver-4.0.2.tgz#43c72865eadb4ddaaa2fb74852527b6a450d927c", + "integrity": "sha512-B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==", + "requires": { + "archiver-utils": "^2.1.0", + "async": "^3.2.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.1.6", + "readable-stream": "^3.6.0", + "tar-stream": "^2.1.2", + "zip-stream": "^3.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + } + }, + "ast-types": { + "version": "0.13.3", + "resolved": "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.3.tgz#50da3f28d17bdbc7969a3a2d83a0e4a72ae755a7", + "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "aws-sdk": { + "version": "2.715.0", + "resolved": "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.715.0.tgz#b890892098e0a4d9e7189ed341267d4a9a6e856b", + "integrity": "sha512-O6ytb66IXFCowp0Ng2bSPM6v/cZVOhjJWFTR1CG4ieG4IroAaVgB3YQKkfPKA0Cy9B/Ovlsm7B737iuroKsd0w==", + "requires": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "bl": { + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "camelcase": { + "version": "6.0.0", + "resolved": "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e", + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==" + }, + "cdk-assets": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/cdk-assets/-/cdk-assets-1.58.0.tgz", + "integrity": "sha512-UWd2Ks4T4LltDuKT0EiSRyaWRtFPejRej5fSb+Ao/C8R0J7M1yTn/x48tOZD4/Y8KyYHC40WiVkmOIhRww17zw==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "@aws-cdk/cx-api": "1.58.0", + "archiver": "^4.0.2", + "aws-sdk": "^2.715.0", + "glob": "^7.1.6", + "yargs": "^15.3.1" + }, + "dependencies": { + "@aws-cdk/cloud-assembly-schema": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.58.0.tgz", + "integrity": "sha512-uihmnZL76Yq/PrOpGRV4CX0Y0OLnVQbXnNpR0WSHfLn1gbBxzJIDik0HIGOzOhA6JckhKivouJswbephuug0Ug==", + "requires": { + "jsonschema": "^1.2.5", + "semver": "^7.2.2" + } + }, + "@aws-cdk/cx-api": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.58.0.tgz", + "integrity": "sha512-t1Q7fXtk8Ux/psz0zGXY9YZkJtPY7fGurMkrAwoLGpM3GCmBR+jRBYqSHG1Rtvle6H+JdVtd1Ocs/Odfaz3bYg==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "semver": "^7.2.2" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "archiver": { + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/archiver/-/archiver-4.0.2.tgz#43c72865eadb4ddaaa2fb74852527b6a450d927c", + "integrity": "sha512-B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==", + "requires": { + "archiver-utils": "^2.1.0", + "async": "^3.2.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.1.6", + "readable-stream": "^3.6.0", + "tar-stream": "^2.1.2", + "zip-stream": "^3.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + } + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + }, + "aws-sdk": { + "version": "2.715.0", + "resolved": "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.715.0.tgz#b890892098e0a4d9e7189ed341267d4a9a6e856b", + "integrity": "sha512-O6ytb66IXFCowp0Ng2bSPM6v/cZVOhjJWFTR1CG4ieG4IroAaVgB3YQKkfPKA0Cy9B/Ovlsm7B737iuroKsd0w==", + "requires": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "bl": { + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "compress-commons": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz#833944d84596e537224dd91cf92f5246823d4f1d", + "integrity": "sha512-FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==", + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.7" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "requires": { + "buffer": "^5.1.0" + } + }, + "crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "requires": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "jsonschema": { + "version": "1.2.6", + "resolved": "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.6.tgz#52b0a8e9dc06bbae7295249d03e4b9faee8a0c0b", + "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==" + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57", + "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" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tar-stream": { + "version": "2.1.2", + "resolved": "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325", + "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", + "requires": { + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + } + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "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.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "zip-stream": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz#cb8db9d324a76c09f9b76b31a12a48638b0b9708", + "integrity": "sha512-r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==", + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + } + } + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + }, + "cli-color": { + "version": "0.1.7", + "resolved": "https://registry.yarnpkg.com/cli-color/-/cli-color-0.1.7.tgz#adc3200fa471cc211b0da7f566b71e98b9d67347", + "integrity": "sha1-rcMgD6RxzCEbDaf1ZrcemLnWc0c=", + "requires": { + "es5-ext": "0.8.x" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "compress-commons": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz#833944d84596e537224dd91cf92f5246823d4f1d", + "integrity": "sha512-FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==", + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.7" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "requires": { + "buffer": "^5.1.0" + } + }, + "crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "requires": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "difflib": { + "version": "0.2.4", + "resolved": "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e", + "integrity": "sha1-teMDYabbAjF21WKJLbhZQKcY9H4=", + "requires": { + "heap": ">= 0.2.0" + } + }, + "dreamopt": { + "version": "0.6.0", + "resolved": "https://registry.yarnpkg.com/dreamopt/-/dreamopt-0.6.0.tgz#d813ccdac8d39d8ad526775514a13dda664d6b4b", + "integrity": "sha1-2BPM2sjTnYrVJndVFKE92mZNa0s=", + "requires": { + "wordwrap": ">=0.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "es5-ext": { + "version": "0.8.2", + "resolved": "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.8.2.tgz#aba8d9e1943a895ac96837a62a39b3f55ecd94ab", + "integrity": "sha1-q6jZ4ZQ6iVrJaDemKjmz9V7NlKs=" + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escodegen": { + "version": "1.14.1", + "resolved": "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457", + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-uri": { + "version": "2.0.4", + "resolved": "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.4.tgz#d4937ab819e218d4cb5ae18e4f5962bef169cc6a", + "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "heap": { + "version": "0.2.6", + "resolved": "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac", + "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "json-diff": { + "version": "0.5.4", + "resolved": "https://registry.yarnpkg.com/json-diff/-/json-diff-0.5.4.tgz#7bc8198c441756632aab66c7d9189d365a7a035a", + "integrity": "sha512-q5Xmx9QXNOzOzIlMoYtLrLiu4Jl/Ce2bn0CNcv54PhyH89CI4GWlGVDye8ei2Ijt9R3U+vsWPsXpLUNob8bs8Q==", + "requires": { + "cli-color": "~0.1.6", + "difflib": "~0.2.1", + "dreamopt": "~0.6.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "jsonschema": { + "version": "1.2.6", + "resolved": "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.6.tgz#52b0a8e9dc06bbae7295249d03e4b9faee8a0c0b", + "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==" + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "md5": { + "version": "2.2.1", + "resolved": "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "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-limit": { + "version": "2.3.0", + "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pac-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz#115b1e58f92576cac2eba718593ca7b0e37de2ad", + "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", + "requires": { + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-3.0.0.tgz#6aea30787db0a891704deb7800a722a7615a6f26", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promptly": { + "version": "3.0.3", + "resolved": "https://registry.yarnpkg.com/promptly/-/promptly-3.0.3.tgz#e178f722e73d82c60d019462044bccfdd9872f42", + "integrity": "sha512-EWnzOsxVKUjqKeE6SStH1/cO4+DE44QolaoJ4ojGd9z6pcNkpgfJKr1ncwxrOFHSTIzoudo7jG8y0re30/LO1g==", + "requires": { + "pify": "^3.0.0", + "read": "^1.0.4" + } + }, + "proxy-agent": { + "version": "3.1.1", + "resolved": "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.1.1.tgz#7e04e06bf36afa624a1540be247b47c970bd3014", + "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", + "requires": { + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "requires": { + "mute-stream": "~0.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57", + "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" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tar-stream": { + "version": "2.1.2", + "resolved": "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325", + "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", + "requires": { + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "8.2.0", + "resolved": "https://registry.yarnpkg.com/uuid/-/uuid-8.2.0.tgz#cb10dd6b118e2dada7d0cd9730ba7417c93d920e", + "integrity": "sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q==" + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + } + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "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.1" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + } + } + }, + "zip-stream": { + "version": "3.0.1", + "resolved": "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz#cb8db9d324a76c09f9b76b31a12a48638b0b9708", + "integrity": "sha512-r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==", + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + } + } + }, + "aws-sdk": { + "version": "2.732.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.732.0.tgz", + "integrity": "sha512-dCTw/7sCtV8KkBe5BlfngBWH3PsPYafWmWm+tLY7LyN81RHvMs3VbvnLbOOO2m/c9eMk10njXjXIPsFebdGMQw==", + "optional": true, + "requires": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "optional": true + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "optional": true + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "optional": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "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" + } + }, + "cfn-rpdk": { + "version": "https://github.com/eduardomourar/cloudformation-cli-typescript-plugin/releases/download/v0.5.0/cfn-rpdk-0.5.0.tgz", + "integrity": "sha512-dWxC6Sb1NdOZb6hSLBmg3HRvMyZ3zcVRI3ZEMYbc6G5Y/JR+RRFDmOcQFRzfcT/JJrc13FLJZopgsnhYsisjqw==", + "requires": { + "@org-formation/tombok": "^0.0.1", + "autobind-decorator": "^2.4.0", + "class-transformer": "^0.3.1", + "reflect-metadata": "^0.1.13", + "string.prototype.replaceall": "^1.0.3", + "uuid": "^7.0.2" + }, + "dependencies": { + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + } + } + }, + "class-transformer": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.3.2.tgz", + "integrity": "sha512-9QY6QXBH/+Gt1C3HBmJCrgY6+EFpIa6aLjfDnlXFx0zQl/HjrCE7qoaI0srNrxpMIfsobCpgUdDG5JYtJOpVsw==" + }, + "constructs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.0.4.tgz", + "integrity": "sha512-CDvg7gMjphE3DFX4pzkF6j73NREbR8npPFW8Mx/CLRnMR035+Y1o1HrXIsNSss/dq3ZUnNTU9jKyd3fL9EOlfw==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "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" + } + }, + "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-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "optional": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "optional": true + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "optional": true + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "optional": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "optional": true + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "string.prototype.replaceall": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.replaceall/-/string.prototype.replaceall-1.0.4.tgz", + "integrity": "sha512-sS2UB5FG8JdWU16mfJdtgCJ+KJtJhuOCdwtD+l1nx3f6N1T/ou4xIq1em4Gh7yV//SqhANolAGrFeAZoIwRQrw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "get-intrinsic": "^1.0.1", + "has-symbols": "^1.0.1", + "is-regex": "^1.1.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "optional": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "optional": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "optional": true + } + } +} diff --git a/resource-types/VSCodeRemoteDevelopment/package.json b/resource-types/VSCodeRemoteDevelopment/package.json new file mode 100644 index 0000000..b78cf29 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/package.json @@ -0,0 +1,35 @@ +{ + "name": "awssamples-devtools-devinstance", + "version": "1.0.0", + "description": "AWS custom resource provider named AWSSamples::Devtools::Devinstance.", + "main": "dist/handlers.js", + "files": [ + "dist" + ], + "scripts": { + "all": "npm install && npm run build && cfn submit --set-default", + "e2e": "npm run build && sam build --use-container && sam local invoke --event sam-tests/create.json TestEntrypoint", + "build": "npx tsc", + "prepack": "npm run build", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "@aws-cdk/aws-ec2": "npm:@rhaws/aws-ec2@^1.58.0", + "@aws-cdk/aws-ecs": "1.58.0", + "@aws-cdk/aws-efs": "1.58.0", + "@aws-cdk/aws-iam": "1.58.0", + "@aws-cdk/core": "1.58.0", + "@types/uuid": "^8.3.0", + "aws-cdk": "1.58.0", + "cfn-rpdk": "https://github.com/eduardomourar/cloudformation-cli-typescript-plugin/releases/download/v0.5.0/cfn-rpdk-0.5.0.tgz", + "source-map-support": "^0.5.16", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@types/node": "^12.19.16", + "typescript": "^3.8.3" + }, + "optionalDependencies": { + "aws-sdk": "^2.656.0" + } +} diff --git a/resource-types/VSCodeRemoteDevelopment/resource-role.yaml b/resource-types/VSCodeRemoteDevelopment/resource-role.yaml new file mode 100644 index 0000000..1f26106 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/resource-role.yaml @@ -0,0 +1,31 @@ +AWSTemplateFormatVersion: "2010-09-09" +Description: > + This CloudFormation template creates a role assumed by CloudFormation + during CRUDL operations to mutate resources on behalf of the customer. + +Resources: + ExecutionRole: + Type: AWS::IAM::Role + Properties: + MaxSessionDuration: 8400 + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: resources.cloudformation.amazonaws.com + Action: sts:AssumeRole + Path: "/" + Policies: + - PolicyName: ResourceTypePolicy + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: + - "*" + Resource: "*" +Outputs: + ExecutionRoleArn: + Value: + Fn::GetAtt: ExecutionRole.Arn diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/create.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/create.json new file mode 100644 index 0000000..1810fc5 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/create.json @@ -0,0 +1,19 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "CREATE", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + "InstanceType":"m4.xlarge", + "DiskSize":200, + "Keypair": "dev" + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": null +} diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/create2.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/create2.json new file mode 100644 index 0000000..6f2f4d1 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/create2.json @@ -0,0 +1,20 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "CREATE", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + "InstanceType":"m4.xlarge", + "DiskSize":200, + "Keypair": "dev", + "UID": "DevInstance-c97e3580-f33e-4cf6-a30d-a52c212e8d25" + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": {"state":"creating"} +} diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/delete.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/delete.json new file mode 100644 index 0000000..a3e82ea --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/delete.json @@ -0,0 +1,19 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "DELETE", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + "InstanceType":"m4.2xlarge", + "DiskSize":200, + "UID": "DevInstance-cdd083c5-f2c9-4107-9691-f2a173ae7b16" + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": null +} diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/delete2.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/delete2.json new file mode 100644 index 0000000..d467366 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/delete2.json @@ -0,0 +1,16 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "DELETE", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": {"state": "deleting", "uid": "DevInstance-b47b8408-1ea4-4207-a4e3-94233f897451"} +} diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/list.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/list.json new file mode 100644 index 0000000..bdd6965 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/list.json @@ -0,0 +1,16 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "LIST", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": null +} diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/read.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/read.json new file mode 100644 index 0000000..7a3656b --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/read.json @@ -0,0 +1,17 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "READ", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + "UID": "DevInstance-c97e3580-f33e-4cf6-a30d-a52c212e8d25" + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": null +} diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/update.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/update.json new file mode 100644 index 0000000..a494b18 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/update.json @@ -0,0 +1,20 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "UPDATE", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + "InstanceType":"m4.xlarge", + "DiskSize":200, + "UID": "DevInstance-c97e3580-f33e-4cf6-a30d-a52c212e8d25", + "Keypair" : "dev" + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": null +} diff --git a/resource-types/VSCodeRemoteDevelopment/sam-tests/update2.json b/resource-types/VSCodeRemoteDevelopment/sam-tests/update2.json new file mode 100644 index 0000000..c54d570 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/sam-tests/update2.json @@ -0,0 +1,20 @@ +{ + "credentials": { + "accessKeyId": "", + "secretAccessKey": "", + "sessionToken": "" + }, + "action": "UPDATE", + "request": { + "clientRequestToken": "4b90a7e4-b790-456b-a937-0cfdfa211dfe", + "desiredResourceState": { + "InstanceType":"m4.2xlarge", + "DiskSize":200, + "UID": "DevInstance-8fadeaab-6608-48a2-b0a7-d650411f8d65", + "Keypair" : "dev" + }, + "previousResourceState": null, + "logicalResourceIdentifier": null + }, + "callbackContext": {"state":"updating"} +} diff --git a/resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts b/resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts new file mode 100755 index 0000000..6849ec4 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts @@ -0,0 +1,8 @@ +#!/usr/bin/env node +import 'source-map-support/register'; +import * as cdk from '@aws-cdk/core'; +import { DevinstanceStack } from './devinstance-stack'; + +const app = new cdk.App(); +new DevinstanceStack(app, 'DevinstanceStack'); +new DevinstanceStack(app, 'CanaryStack', {}, true); \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts b/resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts new file mode 100644 index 0000000..cc1a155 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts @@ -0,0 +1,151 @@ +import * as cdk from '@aws-cdk/core' +import * as ec2 from '@aws-cdk/aws-ec2' +import * as ecs from '@aws-cdk/aws-ecs' +import * as iam from '@aws-cdk/aws-iam' +import * as efs from '@aws-cdk/aws-efs' +import * as fs from 'fs' +import { v4 as uuidv4 } from 'uuid' + +export class DevinstanceStack extends cdk.Stack { + constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps, canary: boolean = false) { + super(scope, id, props); + + const keypairParameter = new cdk.CfnParameter(this, "keypair", { + type: "String", + default: 'dev', + description: "The name of the SSH keypair to connect to your dev environment." + }) + + const instanceTypeParameter = new cdk.CfnParameter(this, "instanceType", { + type: "String", + default: 'm4.xlarge', + description: "The instance type for your dev environment." + }) + + const diskSizeParameter = new cdk.CfnParameter(this, "diskSize", { + type: "Number", + default: 100, + description: "The size of the persistent volume for your dev environment in Gibibytes." + }) + + const vpc = new ec2.Vpc(this, 'DevVpc', { + maxAzs: 1, + subnetConfiguration: [{ + cidrMask: 26, + name: 'publicSubnet', + subnetType: ec2.SubnetType.PUBLIC, + }], + natGateways: 0 + }) + + const volume = new ec2.Volume(this, 'Volume', { + availabilityZone: vpc.availabilityZones[0], + size: cdk.Size.gibibytes(diskSizeParameter.valueAsNumber), + }); + + const cfnVolume = volume.node.findChild('Resource') as cdk.CfnResource + cfnVolume.applyRemovalPolicy(cdk.RemovalPolicy.RETAIN); + + const publicSubnet = vpc.selectSubnets({ + subnetType: ec2.SubnetType.PUBLIC + }) + + const ec2Sg = new ec2.SecurityGroup(this, "ec2Sg", { + vpc: vpc + }) + + ec2Sg.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(22)) + + const instance = new ec2.Instance(this, "Devinstance-" + uuidv4(), { + vpc: vpc, + vpcSubnets: publicSubnet, + instanceType: new ec2.InstanceType(instanceTypeParameter.valueAsString), + machineImage: ec2.MachineImage.latestAmazonLinux({ + generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2 + }), + keyName: keypairParameter.valueAsString, + securityGroup: ec2Sg, + blockDevices: [ + { + deviceName: '/dev/xvda', + volume: ec2.BlockDeviceVolume.ebs(100, { encrypted: true }), + } + ] + }) + + const volumesPolicy = new iam.PolicyStatement({ + resources: ['*'], + actions: [ + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInstances", + "ec2:DescribeVolumes", + "ec2:DescribeVolumeAttribute", + "ec2:DescribeVolumeStatus", + "ec2:DescribeSnapshots", + "ec2:DescribeSnapshotAttribute", + "ec2:DescribeTags" + ] + }) + + instance.addToRolePolicy(volumesPolicy) + + const targetDevice = '/dev/xvdz' + const mointPoint = '/mnt/ebs/fs1' + + const attachGrant = volume.grantAttachVolumeByResourceTag(instance.grantPrincipal, [instance]); + const detachGrant = volume.grantDetachVolumeByResourceTag(instance.grantPrincipal, [instance]); + + const eIp = new ec2.CfnEIP(this, "DevIp"); + const ec2Assoc = new ec2.CfnEIPAssociation(this, "Ec2Association", { + eip: eIp.ref, + instanceId: instance.instanceId + }); + + const cfnInstance = instance.node.defaultChild as ec2.CfnInstance + cfnInstance.hibernationOptions = { configured: true } + + instance.userData.addCommands( + "yum check-update -y", + "yum upgrade -y", + ) + + instance.userData.addCommands(` +aws configure set region ${this.region} +INST_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) +VOL_ID=${volume.volumeId} +# aws ec2 detach-volume --force --volume-id $VOL_ID +VOLUME_STATUS='' +until [ "$VOLUME_STATUS" == \\\"available\\\" ]; do + echo "Waiting for volume $VOL_ID to be available for attaching..." + VOLUME_STATUS=$(aws ec2 describe-volumes --volume-ids $VOL_ID --query 'Volumes[0].State') + echo "Volume status is $VOLUME_STATUS" + sleep 5 +done +echo "Attaching volume..." +aws ec2 attach-volume --volume-id $VOL_ID --instance-id $INST_ID --device ${targetDevice} +while ! test -e ${targetDevice}; do sleep 1; done +` + ) + + instance.userData.addCommands( + `mkfs.xfs ${targetDevice}`, + `mkdir -p ${mointPoint}`, + `mount ${targetDevice} ${mointPoint}`, + `xfs_growfs -d ${mointPoint}`, + `echo "${targetDevice} ${mointPoint} xfs defaults,nofail 0 2" >> /etc/fstab`, + `mkdir -p ${mointPoint}/home ${mointPoint}/workspace ${mointPoint}/docker`) + + instance.userData.addCommands( + `ln -s ${mointPoint}/docker /var/lib/docker`, + "amazon-linux-extras install docker", + "service docker start", + "usermod -a -G docker ec2-user", + "chkconfig docker on") + + new cdk.CfnOutput(this, 'ssh', { + value: `ssh://ec2-user@${instance.instancePublicDnsName}`, + }); + } + +} + diff --git a/resource-types/VSCodeRemoteDevelopment/src/devinstance.ts b/resource-types/VSCodeRemoteDevelopment/src/devinstance.ts new file mode 100644 index 0000000..6d9626c --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/src/devinstance.ts @@ -0,0 +1,13 @@ +#!/usr/bin/env node +import 'source-map-support/register'; +import * as cdk from '@aws-cdk/core'; +import { DevinstanceStack } from './devinstance-stack'; + + + +export function getTemplate(): any { + const app = new cdk.App(); + new DevinstanceStack(app, 'DevinstanceStack'); + const assembly = app.synth() + return assembly.getStackByName('DevinstanceStack').template +} \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/src/handlers.ts b/resource-types/VSCodeRemoteDevelopment/src/handlers.ts new file mode 100644 index 0000000..2dbd323 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/src/handlers.ts @@ -0,0 +1,414 @@ +import { + Action, + BaseResource, + exceptions, + handlerEvent, + HandlerErrorCode, + OperationStatus, + Optional, + ProgressEvent, + ResourceHandlerRequest, + SessionProxy, +} from 'cfn-rpdk'; +import { ResourceModel } from './models'; +import AWS from 'aws-sdk' +import { v4 as uuidv4 } from 'uuid' +import { getTemplate } from './devinstance' +import { env } from 'process' + +interface CallbackContext extends Record { } + +function getCfClient(session: Optional) { + if (env.HY_OVERRIDE_CREDENTIALS === "yes") { + console.log('use override credentials') + AWS.config.accessKeyId = env.HY_ACCESS_KEY_ID + AWS.config.secretAccessKey = env.HY_SECRET_ACCESS_KEY + return new AWS.CloudFormation() + } + + const plainSession = session as any + if (plainSession.options.credentials.secretAccessKey) { + var cf = session.client("CloudFormation") as AWS.CloudFormation + console.log("use provided credentials") + } else { + var cf = new AWS.CloudFormation() + console.log("use local credentials") + } + + return cf +} + +function createErrorProgressEvent(err: any, code?: HandlerErrorCode): ProgressEvent { + code = code || HandlerErrorCode.GeneralServiceException + const progress = ProgressEvent.failed(code, `${err.code}: ${err.message}`) + console.log(progress) + return progress +} + +function cfFailed(stackStatus: string): boolean { + return ["UPDATE_ROLLBACK_COMPLETE", "ROLLBACK_IN_PROGRESS", "ROLLBACK_COMPLETE", "CREATE_FAILED", "ROLLBACK_FAILED", "DELETE_FAILED", "UPDATE_ROLLBACK_FAILED", "IMPORT_ROLLBACK_FAILED"].includes(stackStatus) +} + +function emptyContext(progress: ProgressEvent) { + const ctx = {} + progress.callbackContext = ctx + return ctx +} + +function setContext(progress: ProgressEvent, ctx: CallbackContext) { + progress.callbackContext = ctx + return ctx +} + +async function getResourceModelFromStack(session: Optional, stackName: string): Promise { + if (stackName === undefined || stackName === "") { + const err = new Error("Empty UID does not exist") as any + err.code = "ValidationError" + throw err + } + const response: AWS.CloudFormation.DescribeStacksOutput = await getCfClient(session).describeStacks({ StackName: stackName }).promise() + + const outputs = response.Stacks[0].Outputs.reduce((map: any, item) => { + map[item.OutputKey] = item.OutputValue + return map + }, {}) + + const props = response.Stacks[0].Parameters.reduce((map: any, item) => { + map[item.ParameterKey] = item.ParameterValue + return map + }, {}) + + return new ResourceModel( + { + UID: stackName, + InstanceType: props.instanceType, + DiskSize: parseInt(props.diskSize) as number, + Keypair: props.keypair, + SSH: outputs.ssh + } + ) +} + +function getStackParametersFromModel(model: ResourceModel): AWS.CloudFormation.Parameters { + return [ + { ParameterKey: "keypair", ParameterValue: model.Keypair }, + { ParameterKey: "instanceType", ParameterValue: model.InstanceType }, + { ParameterKey: "diskSize", ParameterValue: model.DiskSize.toString() } + ] +} + +function debugLog(action: Action, request: ResourceHandlerRequest, callbackContext: CallbackContext) { + console.log(action + " -----------------") + console.log("Request: " + JSON.stringify(request)) + console.log("Context: " + JSON.stringify(callbackContext)) +} + +class Resource extends BaseResource { + + /** + * CloudFormation invokes this handler when the resource is initially created + * during stack create operations. + * + * @param session Current AWS session passed through from caller + * @param request The request object for the provisioning request passed to the implementor + * @param callbackContext Custom context object to enable handlers to process re-invocation + */ + @handlerEvent(Action.Create) + public async create( + session: Optional, + request: ResourceHandlerRequest, + callbackContext: CallbackContext, + ): Promise { + const model = new ResourceModel(request.desiredResourceState); + const progress: ProgressEvent = ProgressEvent.builder() + .status(OperationStatus.InProgress) + .resourceModel(model) + .callbackContext(callbackContext) + .build() as ProgressEvent; + + debugLog(Action.Create, request, callbackContext) + + const state = callbackContext.state + + if (state === "creating") { + const uuid: string = model.UID + const response = await getCfClient(session).describeStacks({ StackName: uuid }).promise() + const stack = response.Stacks[0] + if (stack.StackStatus === "CREATE_COMPLETE") { + const outputs = stack.Outputs.reduce((map: any, item) => { + map[item.OutputKey] = item.OutputValue + return map + }, {}) + model.SSH = outputs.ssh + progress.status = OperationStatus.Success + emptyContext(progress) + } else if (cfFailed(stack.StackStatus)) { + emptyContext(progress) + return createErrorProgressEvent(new Error(stack.StackStatus + ": " + stack.StackStatusReason), HandlerErrorCode.InvalidRequest) + } + + } else { + + try { + if (model.SSH !== undefined || model.UID !== undefined) { + return createErrorProgressEvent(new Error("The SSH and UID properties are read-only."), HandlerErrorCode.InvalidRequest) + } + const uuid: string = "DevInstance-" + uuidv4() + const parameters = getStackParametersFromModel(model) + const template = JSON.stringify(getTemplate()) + await getCfClient(session).createStack({ StackName: uuid, Parameters: parameters, Capabilities: ["CAPABILITY_IAM"], TemplateBody: template }).promise() + setContext(progress, { + state: "creating" + }) + model.UID = uuid + } catch (err) { + emptyContext(progress) + return createErrorProgressEvent(err, HandlerErrorCode.InvalidRequest) + } + + } + console.log(progress) + return progress + + + } + + /** + * CloudFormation invokes this handler when the resource is updated + * as part of a stack update operation. + * + * @param session Current AWS session passed through from caller + * @param request The request object for the provisioning request passed to the implementor + * @param callbackContext Custom context object to enable handlers to process re-invocation + */ + @handlerEvent(Action.Update) + public async update( + session: Optional, + request: ResourceHandlerRequest, + callbackContext: CallbackContext, + ): Promise { + const model: ResourceModel = request.desiredResourceState; + const progress: ProgressEvent = ProgressEvent.builder() + .status(OperationStatus.InProgress) + .resourceModel(model) + .callbackContext(callbackContext) + .build() as ProgressEvent + + debugLog(Action.Update, request, callbackContext) + + const state = callbackContext.state + + if (state === "updating") { + const response = await getCfClient(session).describeStacks({ StackName: model.UID }).promise() + const stack = response.Stacks[0] + if (stack.StackStatus === "UPDATE_COMPLETE") { + progress.status = OperationStatus.Success + emptyContext(progress) + } else if (cfFailed(stack.StackStatus)) { + emptyContext(progress) + return createErrorProgressEvent(new Error(stack.StackStatus + ": " + stack.StackStatusReason)) + } + + } else { + + try { + if (model.UID === undefined || model.UID === "") { + const err = new Error("Empty UID does not exist") as any + err.code = "ValidationError" + throw err + } + const parameters = getStackParametersFromModel(model) + const template = JSON.stringify(getTemplate()) + await getCfClient(session).updateStack({ StackName: model.UID, Parameters: parameters, Capabilities: ["CAPABILITY_IAM"], TemplateBody: template }).promise() + setContext(progress, { + state: "updating" + }) + } catch (err) { + emptyContext(progress) + if (err.code === "ValidationError" && err.message.includes("does not exist")) { + return createErrorProgressEvent(err, HandlerErrorCode.NotFound) + } else { + return createErrorProgressEvent(err) + } + } + } + console.log(progress) + return progress + + + } + + /** + * CloudFormation invokes this handler when the resource is deleted, either when + * the resource is deleted from the stack as part of a stack update operation, + * or the stack itself is deleted. + * + * @param session Current AWS session passed through from caller + * @param request The request object for the provisioning request passed to the implementor + * @param callbackContext Custom context object to enable handlers to process re-invocation + */ + @handlerEvent(Action.Delete) + public async delete( + session: Optional, + request: ResourceHandlerRequest, + callbackContext: CallbackContext, + ): Promise { + const model: ResourceModel = request.desiredResourceState; + const progress: ProgressEvent = ProgressEvent.builder() + .status(OperationStatus.InProgress) + .callbackContext(callbackContext) + .build() as ProgressEvent + + debugLog(Action.Delete, request, callbackContext) + + const state = callbackContext.state + var uuid: string + + if (state === "deleting") { + uuid = callbackContext.uid + try { + const response = await getCfClient(session).describeStacks({ StackName: uuid }).promise() + const stack = response.Stacks[0] + if (stack.StackStatus === "DELETE_COMPLETE") { + progress.status = OperationStatus.Success + emptyContext(progress) + } else if (cfFailed(stack.StackStatus)) { + emptyContext(progress) + return createErrorProgressEvent(new Error(stack.StackStatus + ": " + stack.StackStatusReason)) + } + } catch (err) { + emptyContext(progress) + if (err.code === "ValidationError" && err.message.includes("does not exist")) { + progress.status = OperationStatus.Success + } else { + return createErrorProgressEvent(err) + } + } + + } else { + uuid = model.UID + try { + const response = await getCfClient(session).describeStacks({ StackName: uuid }).promise() + const stack = response.Stacks[0] + if (stack.StackStatus === "DELETE_COMPLETE") { + emptyContext(progress) + return createErrorProgressEvent(new Error("Already deleted."), HandlerErrorCode.NotFound) + } + await getCfClient(session).deleteStack({ StackName: uuid }).promise() + setContext(progress, { + state: "deleting", + uid: uuid + }) + } catch (err) { + emptyContext(progress) + return createErrorProgressEvent(err, HandlerErrorCode.NotFound) + } + + } + if (progress.status === OperationStatus.InProgress) { + const minimalModel = new ResourceModel() + minimalModel.UID = uuid + progress.resourceModel = minimalModel + } + + console.log(progress) + return progress + + } + + /** + * CloudFormation invokes this handler as part of a stack update operation when + * detailed information about the resource's current state is required. + * + * @param session Current AWS session passed through from caller + * @param request The request object for the provisioning request passed to the implementor + * @param callbackContext Custom context object to enable handlers to process re-invocation + */ + @handlerEvent(Action.Read) + public async read( + session: Optional, + request: ResourceHandlerRequest, + callbackContext: CallbackContext, + ): Promise { + + debugLog(Action.Read, request, callbackContext) + /* + const test = new ResourceModel( + { + UID: "stackName", + InstanceType: "props", + DiskSize: 100, + Keypair: "dev", + SSH: "url" + } + ) + console.log(test) + */ + try { + const model: ResourceModel = await getResourceModelFromStack(session, request.desiredResourceState.UID) + const progress: ProgressEvent = ProgressEvent.builder() + .status(OperationStatus.Success) + .resourceModel(model) + .callbackContext(callbackContext) + .build() as ProgressEvent + + console.log(progress) + return progress + + } catch (err) { + if (err.code === "ValidationError" && err.message.includes("does not exist")) { + return createErrorProgressEvent(err, HandlerErrorCode.NotFound) + } else { + return createErrorProgressEvent(err) + } + } + + + } + + /** + * CloudFormation invokes this handler when summary information about multiple + * resources of this resource provider is required. + * + * @param session Current AWS session passed through from caller + * @param request The request object for the provisioning request passed to the implementor + * @param callbackContext Custom context object to enable handlers to process re-invocation + */ + @handlerEvent(Action.List) + public async list( + session: Optional, + request: ResourceHandlerRequest, + callbackContext: CallbackContext, + ): Promise { + + debugLog(Action.List, request, callbackContext) + + const stacks = await getCfClient(session).listStacks({}).promise() + + const results = stacks.StackSummaries + .filter((stack: AWS.CloudFormation.StackSummary) => { + return stack.StackName.includes("DevInstance-") && !["DELETE_COMPLETE"].includes(stack.StackStatus) + }) + .map(async (summary: AWS.CloudFormation.StackSummary) => { + return await getResourceModelFromStack(session, summary.StackName) + }) + + const models: Array = await Promise.all(results) + + const progress: ProgressEvent = ProgressEvent.builder() + .status(OperationStatus.Success) + .resourceModels(models) + .callbackContext(callbackContext) + .build() as ProgressEvent + + console.log(progress) + return progress; + } +} + + +const resource = new Resource(ResourceModel.TYPE_NAME, ResourceModel); + +export const entrypoint = resource.entrypoint; + +export const testEntrypoint = resource.testEntrypoint; diff --git a/resource-types/VSCodeRemoteDevelopment/src/models.ts b/resource-types/VSCodeRemoteDevelopment/src/models.ts new file mode 100644 index 0000000..6e55873 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/src/models.ts @@ -0,0 +1,78 @@ +// This is a generated file. Modifications will be overwritten. +import { BaseModel, Dict, integer, Integer, Optional, transformValue } from 'cfn-rpdk'; +import { Exclude, Expose, Type, Transform } from 'class-transformer'; + +export class ResourceModel extends BaseModel { + ['constructor']: typeof ResourceModel; + + @Exclude() + public static readonly TYPE_NAME: string = 'AWSSamples::Devtools::Devinstance'; + + @Exclude() + protected readonly IDENTIFIER_KEY_UID: string = '/properties/UID'; + + @Expose({ name: 'UID' }) + @Transform( + ({ value, key, obj, type }) => + transformValue(String, 'UID', value, obj, []), + { + toClassOnly: true, + } + ) + UID?: Optional; + @Expose({ name: 'InstanceType' }) + @Transform( + ({ value, key, obj, type }) => + transformValue(String, 'InstanceType', value, obj, []), + { + toClassOnly: true, + } + ) + InstanceType?: Optional; + @Expose({ name: 'DiskSize' }) + @Transform( + ({ value, key, obj, type }) => + transformValue(Integer, 'DiskSize', value, obj, []), + { + toClassOnly: true, + } + ) + DiskSize?: Optional; + @Expose({ name: 'Keypair' }) + @Transform( + ({ value, key, obj, type }) => + transformValue(String, 'Keypair', value, obj, []), + { + toClassOnly: true, + } + ) + Keypair?: Optional; + @Expose({ name: 'SSH' }) + @Transform( + ({ value, key, obj, type }) => + transformValue(String, 'SSH', value, obj, []), + { + toClassOnly: true, + } + ) + SSH?: Optional; + + @Exclude() + public getPrimaryIdentifier(): Dict { + const identifier: Dict = {}; + if (this.UID != null) { + identifier[this.IDENTIFIER_KEY_UID] = this.UID; + } + + // only return the identifier if it can be used, i.e. if all components are present + return Object.keys(identifier).length === 1 ? identifier : null; + } + + @Exclude() + public getAdditionalIdentifiers(): Array { + const identifiers: Array = new Array(); + // only return the identifiers if any can be used + return identifiers.length === 0 ? null : identifiers; + } +} + diff --git a/resource-types/VSCodeRemoteDevelopment/template.yml b/resource-types/VSCodeRemoteDevelopment/template.yml new file mode 100644 index 0000000..d36e7a6 --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/template.yml @@ -0,0 +1,33 @@ +AWSTemplateFormatVersion: "2010-09-09" +Transform: AWS::Serverless-2016-10-31 +Description: AWS SAM template for the AWSSamples::Devtools::Devinstance resource type + +Globals: + Function: + Timeout: 180 # docker start-up times can be long for SAM CLI + MemorySize: 256 + +Resources: + TestEntrypoint: + Type: AWS::Serverless::Function + Properties: + Handler: dist/handlers.testEntrypoint + Runtime: nodejs12.x + CodeUri: ./ + Environment: + Variables: + HY_OVERRIDE_CREDENTIALS: + HY_ACCESS_KEY_ID: + HY_SECRET_ACCESS_KEY: + + TypeFunction: + Type: AWS::Serverless::Function + Properties: + Handler: dist/handlers.entrypoint + Runtime: nodejs12.x + CodeUri: ./ + Environment: + Variables: + HY_OVERRIDE_CREDENTIALS: + HY_ACCESS_KEY_ID: + HY_SECRET_ACCESS_KEY: diff --git a/resource-types/VSCodeRemoteDevelopment/tsconfig.json b/resource-types/VSCodeRemoteDevelopment/tsconfig.json new file mode 100644 index 0000000..ffbcc7d --- /dev/null +++ b/resource-types/VSCodeRemoteDevelopment/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ES2017", + "module": "commonjs", + "noImplicitAny": true, + "alwaysStrict": true, + "esModuleInterop": true, + "moduleResolution": "node", + "allowJs": true, + "experimentalDecorators": true, + "outDir": "dist" + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} From 512e667b06a870da28e711b4caf3603f68227c9f Mon Sep 17 00:00:00 2001 From: Robert Hoffmann Date: Tue, 9 Mar 2021 16:19:03 +0000 Subject: [PATCH 2/7] Use shrinkwrap to pin dependencies, which is honored by the build process. --- resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml | 7 ------- resource-types/VSCodeRemoteDevelopment/.gitignore | 6 +++++- .../{package-lock.json => npm-shrinkwrap.json} | 0 3 files changed, 5 insertions(+), 8 deletions(-) delete mode 100644 resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml rename resource-types/VSCodeRemoteDevelopment/{package-lock.json => npm-shrinkwrap.json} (100%) diff --git a/resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml b/resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml deleted file mode 100644 index 4c7df2c..0000000 --- a/resource-types/VSCodeRemoteDevelopment/.aws-sam/build.toml +++ /dev/null @@ -1,7 +0,0 @@ -# This file is auto generated by SAM CLI build command - -[build_definitions] -[build_definitions.eb6f63fc-826b-4055-a03d-cbde975fc651] -codeuri = "./" -runtime = "nodejs12.x" -functions = ["TestEntrypoint", "TypeFunction"] diff --git a/resource-types/VSCodeRemoteDevelopment/.gitignore b/resource-types/VSCodeRemoteDevelopment/.gitignore index fac9a0d..445512f 100644 --- a/resource-types/VSCodeRemoteDevelopment/.gitignore +++ b/resource-types/VSCodeRemoteDevelopment/.gitignore @@ -27,4 +27,8 @@ awssamples-devtools-devinstance.zip env.json # envrc -.envrc \ No newline at end of file +.envrc + +# sam +sam.log +.aws-sam \ No newline at end of file diff --git a/resource-types/VSCodeRemoteDevelopment/package-lock.json b/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json similarity index 100% rename from resource-types/VSCodeRemoteDevelopment/package-lock.json rename to resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json From cbcf9b2bf7df77d27830d792cae5cc70525c2fbb Mon Sep 17 00:00:00 2001 From: Robert Hoffmann Date: Tue, 9 Mar 2021 16:58:16 +0000 Subject: [PATCH 3/7] Trimming dependencies to fit into a Lambda. --- .../VSCodeRemoteDevelopment/README.md | 4 +- .../npm-shrinkwrap.json | 3124 +---------------- .../VSCodeRemoteDevelopment/package.json | 4 - .../src/devinstance-app.ts | 1 - .../src/devinstance-stack.ts | 3 - .../src/devinstance.ts | 1 - 6 files changed, 65 insertions(+), 3072 deletions(-) diff --git a/resource-types/VSCodeRemoteDevelopment/README.md b/resource-types/VSCodeRemoteDevelopment/README.md index a057a24..eeec8c0 100644 --- a/resource-types/VSCodeRemoteDevelopment/README.md +++ b/resource-types/VSCodeRemoteDevelopment/README.md @@ -49,8 +49,8 @@ npm run all The included Dockerfile has everything to build and submit the resource type. Provided that you are running on MacOS or Linux and have your AWS CLI config in `~/.aws`: ``` -git clone https://github.com/hypescaler/aws-vscode-remote-containers.git -cd aws-vscode-remote-containers +git clone https://github.com/aws-cloudformation/aws-cloudformation-samples.git +cd aws-cloudformation-samples/resource-types/VSCodeRemoteDevelopment docker build . -t dev-container SRC=$(pwd) && docker run --rm -it -e SRC=$SRC -v /var/run/docker.sock:/var/run/docker.sock -v $SRC:$SRC -v ~/.aws:/root/.aws dev-container /bin/bash -c "cd \$SRC && eval \$(/home/linuxbrew/.linuxbrew/bin/brew shellenv) && npm run all" ``` diff --git a/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json b/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json index 9473cdc..cc4c4bb 100644 --- a/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json +++ b/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json @@ -4,169 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@aws-cdk/assets": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.58.0.tgz", - "integrity": "sha512-tycOCYRYNkG5Xem1FeNgk8h1kXEjrh9wzQ4hfj9KDn058DATb+H9hceUDj8lu/sdn0UeacWsPR/+m1mkNnlXMQ==", - "requires": { - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-apigateway": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.58.0.tgz", - "integrity": "sha512-ASluDLw9weL3bb/7p0Mh48h3RdbMyisDm0IxuOvKL8OIhD1McvQRafUlI8qJ/aVqndv9xDApkvdLVyEIxTj3rg==", - "requires": { - "@aws-cdk/assets": "1.58.0", - "@aws-cdk/aws-certificatemanager": "1.58.0", - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-s3-assets": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-applicationautoscaling": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.58.0.tgz", - "integrity": "sha512-TTcwbF7hxIjSH+1jSetk5vBJFrKbRKp6Umr8+jfQqtLWnfTL4xOaL8KOUSfKrqIs4O8sgNaZq5ajqXsHARlI3g==", - "requires": { - "@aws-cdk/aws-autoscaling-common": "1.58.0", - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-autoscaling": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.58.0.tgz", - "integrity": "sha512-eljgD9Lz4aZPsUNyEjDaMvz0/mmYN12mr2y8nzFeJvIlpgc885giRQWnAleWWWcUIOeV8v5ITpnDn6m/LNV4yg==", - "requires": { - "@aws-cdk/aws-autoscaling-common": "1.58.0", - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-elasticloadbalancing": "1.58.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-sns": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-autoscaling-common": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.58.0.tgz", - "integrity": "sha512-HBYoaZFqnEXGooxWI7w3puk9PlmrpCtXK6mL8bycA+9B3nvxaADLO2q54me9lhlIO7jVE1D6UsIyc75H48NOEw==", - "requires": { - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-autoscaling-hooktargets": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-hooktargets/-/aws-autoscaling-hooktargets-1.58.0.tgz", - "integrity": "sha512-EB/cj7TW3LSh7HeyURJ2ZY9pwH3+chQ//BkNXKKFvtaTsIVV4syVbhpknnRhpbi9FT4s/WKogz/2GgOxACJUFA==", - "requires": { - "@aws-cdk/aws-autoscaling": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-sns": "1.58.0", - "@aws-cdk/aws-sns-subscriptions": "1.58.0", - "@aws-cdk/aws-sqs": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-certificatemanager": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.58.0.tgz", - "integrity": "sha512-g/eLsYlLx7KCQ3j7koAZMM4JaizdQahl2f2Bwsahqzb+yOkE456GcxxAvFp5TH8+HIuc3VqU7l9FKkRpBlThCg==", - "requires": { - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-route53": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-cloudformation": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.58.0.tgz", - "integrity": "sha512-rfHsa2jLYAdMHCKLm4y6th8fVT4qZR7bX1H83dLFEhkzWVYu8FoT8Rjzv8Pgf3U9+Ju3fR9VBh5SHm65d2xPLw==", - "requires": { - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-sns": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-cloudfront": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.58.0.tgz", - "integrity": "sha512-/aK7BtWIQMlH4PGlOpSGafQciabCMBbuQQTQJ4qtjrzyQTWYEumGLre1UliBV+4xXa33fLwNg76Crxd4RAd3mA==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, "@aws-cdk/aws-cloudwatch": { "version": "1.58.0", "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.58.0.tgz", @@ -177,28 +14,6 @@ "constructs": "^3.0.2" } }, - "@aws-cdk/aws-codeguruprofiler": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.58.0.tgz", - "integrity": "sha512-UlJ1BKXjKmKJc5nwV1ePJuzZk60s03R9+HtLg64RjbnIkuQC0No2fNoIxfMkcvcfx64FltVgh9sl8+dn2K0gxA==", - "requires": { - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/core": "1.58.0" - } - }, - "@aws-cdk/aws-cognito": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.58.0.tgz", - "integrity": "sha512-hFtzTsldKTuiZs3v/IrRMpTLwZSkPMdNCE2sEWM1jOOgkwj7YaWQjQKx8BqZlOkQ41zWxJLUc4QVlEukL5bqzw==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/custom-resources": "1.58.0", - "constructs": "^3.0.2" - } - }, "@aws-cdk/aws-ec2": { "version": "npm:@rhaws/aws-ec2@1.58.0", "resolved": "https://registry.npmjs.org/@rhaws/aws-ec2/-/aws-ec2-1.58.0.tgz", @@ -217,209 +32,6 @@ "constructs": "^3.0.2" } }, - "@aws-cdk/aws-ecr": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.58.0.tgz", - "integrity": "sha512-afO5l/J6JL7DZsAAQL38HInfmqgrcbfNpMMK+jNbJoyZYuGx8O2WX65IwlCa62y0x3lWbp1I5XQoDwnM1hAMQw==", - "requires": { - "@aws-cdk/aws-events": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/custom-resources": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-ecr-assets": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.58.0.tgz", - "integrity": "sha512-Klc0jv3VwPHyfujkBs1bYJmRK5rjlAUgkMIZNarXsVDkhCqQ/0MBpldvloFA2lC7Mv0V1Pz1PEf/pR2hLuU8vQ==", - "requires": { - "@aws-cdk/assets": "1.58.0", - "@aws-cdk/aws-ecr": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2", - "minimatch": "^3.0.4" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@aws-cdk/aws-ecs": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecs/-/aws-ecs-1.58.0.tgz", - "integrity": "sha512-35ghq7gNjqBhEwUEhKVcFu6gqHS8fY0sVNCM6gyMA/tHTTqfJoDJ6r1SoOfLsS1PQmjrJ0SNNn3Ky5w2zC/ThQ==", - "requires": { - "@aws-cdk/aws-applicationautoscaling": "1.58.0", - "@aws-cdk/aws-autoscaling": "1.58.0", - "@aws-cdk/aws-autoscaling-hooktargets": "1.58.0", - "@aws-cdk/aws-certificatemanager": "1.58.0", - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-ecr": "1.58.0", - "@aws-cdk/aws-ecr-assets": "1.58.0", - "@aws-cdk/aws-elasticloadbalancing": "1.58.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-route53": "1.58.0", - "@aws-cdk/aws-route53-targets": "1.58.0", - "@aws-cdk/aws-secretsmanager": "1.58.0", - "@aws-cdk/aws-servicediscovery": "1.58.0", - "@aws-cdk/aws-sns": "1.58.0", - "@aws-cdk/aws-sqs": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-efs": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.58.0.tgz", - "integrity": "sha512-MoZ/lN1N7AdC5UoJ6yYCBcJLFQd9lqwv50OA4/TuRLdZh1yCneMiTw2Njr323pB9rzqAlKM16wuE3c1IL45Egw==", - "requires": { - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-elasticloadbalancing": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.58.0.tgz", - "integrity": "sha512-d6TsGGFjX9vGpkc9duCc/zgjOSYgmXCKDuq6FqKkIvyKummyAWbZK+EZ3JhCJu5mMmsiNrSYI98+JEENt6zrfw==", - "requires": { - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-elasticloadbalancingv2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.58.0.tgz", - "integrity": "sha512-XOIEFdrabI5Syp+5pQcnv0L+KhV0zTGNjxHmq3EuLAWPHh5yIenmtijOBr/LVMXGY5eciG5lYCBzC3W/i/HPGg==", - "requires": { - "@aws-cdk/aws-certificatemanager": "1.58.0", - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, "@aws-cdk/aws-events": { "version": "1.58.0", "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.58.0.tgz", @@ -450,47 +62,6 @@ "constructs": "^3.0.2" } }, - "@aws-cdk/aws-lambda": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.58.0.tgz", - "integrity": "sha512-j9DcUd7+zvGHueIrsd5SPlBKKbbYD+2Efxwh4iKu9SP84YZBm25RiwtWlEVcAyEKE144zu4FyIuhPKaJxQ5/bQ==", - "requires": { - "@aws-cdk/aws-applicationautoscaling": "1.58.0", - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-codeguruprofiler": "1.58.0", - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-efs": "1.58.0", - "@aws-cdk/aws-events": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-s3-assets": "1.58.0", - "@aws-cdk/aws-sqs": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, "@aws-cdk/aws-logs": { "version": "1.58.0", "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.58.0.tgz", @@ -502,77 +73,6 @@ "constructs": "^3.0.2" } }, - "@aws-cdk/aws-route53": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.58.0.tgz", - "integrity": "sha512-lgqNpCMR8F7z/eM2QiMmS44G4SwfY9K0X8sBfEQSzM07mnEGRr7chLVK7kYrBlGX/A/lnykhNnyF6VptZIHj3g==", - "requires": { - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-route53-targets": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.58.0.tgz", - "integrity": "sha512-FG7OXDTZEK5Jm1KFhmBsL9sKJDk4e7KoyJWckonhvVwgkyEBKYJ0V9RV1gcuRWYaaaej+MpVrTittqIPJ9fiCQ==", - "requires": { - "@aws-cdk/aws-apigateway": "1.58.0", - "@aws-cdk/aws-cloudfront": "1.58.0", - "@aws-cdk/aws-cognito": "1.58.0", - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-elasticloadbalancing": "1.58.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-route53": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, "@aws-cdk/aws-s3": { "version": "1.58.0", "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.58.0.tgz", @@ -585,150 +85,22 @@ "constructs": "^3.0.2" } }, - "@aws-cdk/aws-s3-assets": { + "@aws-cdk/aws-ssm": { "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.58.0.tgz", - "integrity": "sha512-A+hfFxIq98deOVRCPlNB8eWx4OhNkcISozS9PlEJsK2OMWEJEbhCFINI19wMjPkrYdcDCSMI0kuBf6AxAXQDdA==", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.58.0.tgz", + "integrity": "sha512-z3pXuofqTevMl2r7AuSO83j2CP2Fvsqw4dw7yspk9qQMbVm9jA6XkyfA9n0rgqalr+5MDtLJE1VXDhMiHLQ0dQ==", "requires": { - "@aws-cdk/assets": "1.58.0", "@aws-cdk/aws-iam": "1.58.0", "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-sam": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.58.0.tgz", - "integrity": "sha512-TXjtcOUYxqjhF8fMBcVOMthLuIZOC2Bu08zwsSGlBuSPe9CV3AYAYccMZbF9T+dfi3WRTD9onnKPllc4ojD4kw==", - "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", "@aws-cdk/core": "1.58.0", "constructs": "^3.0.2" } }, - "@aws-cdk/aws-secretsmanager": { + "@aws-cdk/cloud-assembly-schema": { "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-secretsmanager/-/aws-secretsmanager-1.58.0.tgz", - "integrity": "sha512-/rLsJSdTBfJHeZMeFVK/Oa6e8xImNTyED8vGl8qVoi5fJfq95FUcT5fcgUJ5/dNWRl2C0gVPRrNOr2HsPsFMkQ==", - "requires": { - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-sam": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-servicediscovery": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-servicediscovery/-/aws-servicediscovery-1.58.0.tgz", - "integrity": "sha512-PvdhyKK08OUMiEqKEOODiKRSVAUARVjMKeaEEy6bzccNFFeRbwMPcsThTuiRG9smYMgPUe10rBFLT54EQHH2SA==", - "requires": { - "@aws-cdk/aws-ec2": "1.58.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.58.0", - "@aws-cdk/aws-route53": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - }, - "dependencies": { - "@aws-cdk/aws-ec2": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.58.0.tgz", - "integrity": "sha512-KbvV3/maBmFdapDHXfAbr7Wkx+VF0IWdsSwoWfHTEThvIPQNh7P22PZ1IoAC8mops0paRX2cUv0Ndf+gWgrH6w==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-s3": "1.58.0", - "@aws-cdk/aws-ssm": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "constructs": "^3.0.2" - } - } - } - }, - "@aws-cdk/aws-sns": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.58.0.tgz", - "integrity": "sha512-4RDp8a95gh6gpz/F4batG2i2xCldDyjs38RlDyB4DC0ssT16g2AcBIZq1OCj2oy26kB9oJQSUDmV5aHfng9m6Q==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-events": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/aws-sqs": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-sns-subscriptions": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.58.0.tgz", - "integrity": "sha512-d+azz5bH2n/gnjLJAUV23awQIKZvhatynh2yKziOiwpIKcYq/W7IPRdCSM6LQl5kXybSNfXXHT//65MdH/khAQ==", - "requires": { - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-sns": "1.58.0", - "@aws-cdk/aws-sqs": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-sqs": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.58.0.tgz", - "integrity": "sha512-1MSnwMcCm336FnXzvQyEl46TFLuhduT+9FaTq+7skKq7q/SIPrHj5iB36cjAm4nuoUhP37uWFePQTXDjNhsyAA==", - "requires": { - "@aws-cdk/aws-cloudwatch": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/aws-ssm": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.58.0.tgz", - "integrity": "sha512-z3pXuofqTevMl2r7AuSO83j2CP2Fvsqw4dw7yspk9qQMbVm9jA6XkyfA9n0rgqalr+5MDtLJE1VXDhMiHLQ0dQ==", - "requires": { - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-kms": "1.58.0", - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/cloud-assembly-schema": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.58.0.tgz", - "integrity": "sha512-uihmnZL76Yq/PrOpGRV4CX0Y0OLnVQbXnNpR0WSHfLn1gbBxzJIDik0HIGOzOhA6JckhKivouJswbephuug0Ug==", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.58.0.tgz", + "integrity": "sha512-uihmnZL76Yq/PrOpGRV4CX0Y0OLnVQbXnNpR0WSHfLn1gbBxzJIDik0HIGOzOhA6JckhKivouJswbephuug0Ug==", "requires": { "jsonschema": "^1.2.5", "semver": "^7.2.2" @@ -760,1488 +132,25 @@ "version": "1.0.0", "bundled": true }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "fs-extra": { - "version": "9.0.1", - "bundled": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.3", - "bundled": true - }, - "jsonfile": { - "version": "6.0.1", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "universalify": { - "version": "1.0.0", - "bundled": true - } - } - }, - "@aws-cdk/custom-resources": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.58.0.tgz", - "integrity": "sha512-36jDoGOi3J/GdQ32eGY3HeFjZ5skY1NcH8ag/6gcTnZMufrC2Xkc5URe9Y3wD5CVVIc5vCDVJ8w5P0gRaG/Nmg==", - "requires": { - "@aws-cdk/aws-cloudformation": "1.58.0", - "@aws-cdk/aws-iam": "1.58.0", - "@aws-cdk/aws-lambda": "1.58.0", - "@aws-cdk/aws-logs": "1.58.0", - "@aws-cdk/aws-sns": "1.58.0", - "@aws-cdk/core": "1.58.0", - "constructs": "^3.0.2" - } - }, - "@aws-cdk/cx-api": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.58.0.tgz", - "integrity": "sha512-t1Q7fXtk8Ux/psz0zGXY9YZkJtPY7fGurMkrAwoLGpM3GCmBR+jRBYqSHG1Rtvle6H+JdVtd1Ocs/Odfaz3bYg==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "semver": "^7.2.2" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "bundled": true - } - } - }, - "@aws-cdk/region-info": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.58.0.tgz", - "integrity": "sha512-PAkoyPu4uxGEVTKYb1Tea6A0GoAfvC09iLfoIujHFNx38IdfrHm3X9Pn1995HvFJBuzLx1hv5AcGXOFVmwb8hg==" - }, - "@org-formation/tombok": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@org-formation/tombok/-/tombok-0.0.1.tgz", - "integrity": "sha512-6F0zitevY+H3VT3MVsAo4JFlDl5kfqnhGLUwXNc652/HYEBzMru5iLkTIF6+cp/lgvTWxQJQJzH4yoYja2f9Pg==" - }, - "@types/node": { - "version": "12.19.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.16.tgz", - "integrity": "sha512-7xHmXm/QJ7cbK2laF+YYD7gb5MggHIIQwqyjin3bpEGiSuvScMQ5JZZXPvRipi1MwckTQbJZROMns/JxdnIL1Q==", - "dev": true - }, - "@types/uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" - }, - "autobind-decorator": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/autobind-decorator/-/autobind-decorator-2.4.0.tgz", - "integrity": "sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw==" - }, - "aws-cdk": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-1.58.0.tgz", - "integrity": "sha512-DPYhmVN1uiXHFeJfwqxqCR0eLcMzo9iTJjoFpo/yxGYzURpRnz2dZznWQqVecnkPvbXQ7Pd+h25/bSMpbFUBBA==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/cloudformation-diff": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "@aws-cdk/region-info": "1.58.0", - "archiver": "^4.0.2", - "aws-sdk": "^2.715.0", - "camelcase": "^6.0.0", - "cdk-assets": "1.58.0", - "colors": "^1.4.0", - "decamelize": "^4.0.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "json-diff": "^0.5.4", - "minimatch": ">=3.0", - "promptly": "^3.0.3", - "proxy-agent": "^3.1.1", - "semver": "^7.2.2", - "source-map-support": "^0.5.19", - "table": "^5.4.6", - "uuid": "^8.2.0", - "wrap-ansi": "^7.0.0", - "yaml": "^1.10.0", - "yargs": "^15.3.1" - }, - "dependencies": { - "@aws-cdk/cfnspec": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.58.0.tgz", - "integrity": "sha512-ChOJagv2mhvcYXsjUJUC+8//Upzv+ZU1UjH/B2k0Izgkghq+CB2yCcjYQGr/KgRygTvsDRVKXiGjKBBl0kcSKQ==", - "requires": { - "md5": "^2.2.1" - } - }, - "@aws-cdk/cloud-assembly-schema": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.58.0.tgz", - "integrity": "sha512-uihmnZL76Yq/PrOpGRV4CX0Y0OLnVQbXnNpR0WSHfLn1gbBxzJIDik0HIGOzOhA6JckhKivouJswbephuug0Ug==", - "requires": { - "jsonschema": "^1.2.5", - "semver": "^7.2.2" - } - }, - "@aws-cdk/cloudformation-diff": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.58.0.tgz", - "integrity": "sha512-Dp0ZgF00Qvm9hciWs7DABKP4Y4Jm87w6Bl6T6SFw8fAKU8krFdYBPcv6AOw7YQV4TPzm4pzHMsZamGGKzI/elA==", - "requires": { - "@aws-cdk/cfnspec": "1.58.0", - "colors": "^1.4.0", - "diff": "^4.0.2", - "fast-deep-equal": "^3.1.3", - "string-width": "^4.2.0", - "table": "^5.4.6" - } - }, - "@aws-cdk/cx-api": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.58.0.tgz", - "integrity": "sha512-t1Q7fXtk8Ux/psz0zGXY9YZkJtPY7fGurMkrAwoLGpM3GCmBR+jRBYqSHG1Rtvle6H+JdVtd1Ocs/Odfaz3bYg==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "semver": "^7.2.2" - } - }, - "@aws-cdk/region-info": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.58.0.tgz", - "integrity": "sha512-PAkoyPu4uxGEVTKYb1Tea6A0GoAfvC09iLfoIujHFNx38IdfrHm3X9Pn1995HvFJBuzLx1hv5AcGXOFVmwb8hg==" - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "ajv": { - "version": "6.12.2", - "resolved": "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "dependencies": { - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" - } - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "archiver": { - "version": "4.0.2", - "resolved": "https://registry.yarnpkg.com/archiver/-/archiver-4.0.2.tgz#43c72865eadb4ddaaa2fb74852527b6a450d927c", - "integrity": "sha512-B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==", - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.0", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.6", - "readable-stream": "^3.6.0", - "tar-stream": "^2.1.2", - "zip-stream": "^3.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - } - }, - "ast-types": { - "version": "0.13.3", - "resolved": "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.3.tgz#50da3f28d17bdbc7969a3a2d83a0e4a72ae755a7", - "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "aws-sdk": { - "version": "2.715.0", - "resolved": "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.715.0.tgz#b890892098e0a4d9e7189ed341267d4a9a6e856b", - "integrity": "sha512-O6ytb66IXFCowp0Ng2bSPM6v/cZVOhjJWFTR1CG4ieG4IroAaVgB3YQKkfPKA0Cy9B/Ovlsm7B737iuroKsd0w==", - "requires": { - "buffer": "4.9.2", - "events": "1.1.1", - "ieee754": "1.1.13", - "jmespath": "0.15.0", - "querystring": "0.2.0", - "sax": "1.2.1", - "url": "0.10.3", - "uuid": "3.3.2", - "xml2js": "0.4.19" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "bl": { - "version": "4.0.2", - "resolved": "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "camelcase": { - "version": "6.0.0", - "resolved": "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e", - "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==" - }, - "cdk-assets": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/cdk-assets/-/cdk-assets-1.58.0.tgz", - "integrity": "sha512-UWd2Ks4T4LltDuKT0EiSRyaWRtFPejRej5fSb+Ao/C8R0J7M1yTn/x48tOZD4/Y8KyYHC40WiVkmOIhRww17zw==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "@aws-cdk/cx-api": "1.58.0", - "archiver": "^4.0.2", - "aws-sdk": "^2.715.0", - "glob": "^7.1.6", - "yargs": "^15.3.1" - }, - "dependencies": { - "@aws-cdk/cloud-assembly-schema": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.58.0.tgz", - "integrity": "sha512-uihmnZL76Yq/PrOpGRV4CX0Y0OLnVQbXnNpR0WSHfLn1gbBxzJIDik0HIGOzOhA6JckhKivouJswbephuug0Ug==", - "requires": { - "jsonschema": "^1.2.5", - "semver": "^7.2.2" - } - }, - "@aws-cdk/cx-api": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.58.0.tgz", - "integrity": "sha512-t1Q7fXtk8Ux/psz0zGXY9YZkJtPY7fGurMkrAwoLGpM3GCmBR+jRBYqSHG1Rtvle6H+JdVtd1Ocs/Odfaz3bYg==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.58.0", - "semver": "^7.2.2" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "archiver": { - "version": "4.0.2", - "resolved": "https://registry.yarnpkg.com/archiver/-/archiver-4.0.2.tgz#43c72865eadb4ddaaa2fb74852527b6a450d927c", - "integrity": "sha512-B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==", - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.0", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.6", - "readable-stream": "^3.6.0", - "tar-stream": "^2.1.2", - "zip-stream": "^3.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - } - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "aws-sdk": { - "version": "2.715.0", - "resolved": "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.715.0.tgz#b890892098e0a4d9e7189ed341267d4a9a6e856b", - "integrity": "sha512-O6ytb66IXFCowp0Ng2bSPM6v/cZVOhjJWFTR1CG4ieG4IroAaVgB3YQKkfPKA0Cy9B/Ovlsm7B737iuroKsd0w==", - "requires": { - "buffer": "4.9.2", - "events": "1.1.1", - "ieee754": "1.1.13", - "jmespath": "0.15.0", - "querystring": "0.2.0", - "sax": "1.2.1", - "url": "0.10.3", - "uuid": "3.3.2", - "xml2js": "0.4.19" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "bl": { - "version": "4.0.2", - "resolved": "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "compress-commons": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz#833944d84596e537224dd91cf92f5246823d4f1d", - "integrity": "sha512-FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==", - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^3.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.7" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "crc": { - "version": "3.8.0", - "resolved": "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "requires": { - "buffer": "^5.1.0" - } - }, - "crc32-stream": { - "version": "3.0.1", - "resolved": "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", - "requires": { - "crc": "^3.4.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - }, - "jsonschema": { - "version": "1.2.6", - "resolved": "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.6.tgz#52b0a8e9dc06bbae7295249d03e4b9faee8a0c0b", - "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==" - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57", - "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" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "sax": { - "version": "1.2.1", - "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "tar-stream": { - "version": "2.1.2", - "resolved": "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325", - "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", - "requires": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "url": { - "version": "0.10.3", - "resolved": "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" - }, - "dependencies": { - "sax": { - "version": "1.2.4", - "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - } - } - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", - "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.1" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "zip-stream": { - "version": "3.0.1", - "resolved": "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz#cb8db9d324a76c09f9b76b31a12a48638b0b9708", - "integrity": "sha512-r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==", - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - } - } - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" - }, - "cli-color": { - "version": "0.1.7", - "resolved": "https://registry.yarnpkg.com/cli-color/-/cli-color-0.1.7.tgz#adc3200fa471cc211b0da7f566b71e98b9d67347", - "integrity": "sha1-rcMgD6RxzCEbDaf1ZrcemLnWc0c=", - "requires": { - "es5-ext": "0.8.x" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "compress-commons": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz#833944d84596e537224dd91cf92f5246823d4f1d", - "integrity": "sha512-FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==", - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^3.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.7" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "crc": { - "version": "3.8.0", - "resolved": "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "requires": { - "buffer": "^5.1.0" - } - }, - "crc32-stream": { - "version": "3.0.1", - "resolved": "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", - "requires": { - "crc": "^3.4.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" - }, - "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "difflib": { - "version": "0.2.4", - "resolved": "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e", - "integrity": "sha1-teMDYabbAjF21WKJLbhZQKcY9H4=", - "requires": { - "heap": ">= 0.2.0" - } - }, - "dreamopt": { - "version": "0.6.0", - "resolved": "https://registry.yarnpkg.com/dreamopt/-/dreamopt-0.6.0.tgz#d813ccdac8d39d8ad526775514a13dda664d6b4b", - "integrity": "sha1-2BPM2sjTnYrVJndVFKE92mZNa0s=", - "requires": { - "wordwrap": ">=0.0.2" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "es5-ext": { - "version": "0.8.2", - "resolved": "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.8.2.tgz#aba8d9e1943a895ac96837a62a39b3f55ecd94ab", - "integrity": "sha1-q6jZ4ZQ6iVrJaDemKjmz9V7NlKs=" - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escodegen": { - "version": "1.14.1", - "resolved": "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457", - "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - } - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "file-uri-to-path": { + "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "bundled": true }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "brace-expansion": { + "version": "1.1.11", + "bundled": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "concat-map": { + "version": "0.0.1", + "bundled": true }, "fs-extra": { "version": "9.0.1", - "resolved": "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "bundled": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -2249,960 +158,72 @@ "universalify": "^1.0.0" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-uri": { - "version": "2.0.4", - "resolved": "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.4.tgz#d4937ab819e218d4cb5ae18e4f5962bef169cc6a", - "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", - "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "graceful-fs": { "version": "4.2.3", - "resolved": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "heap": { - "version": "0.2.6", - "resolved": "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac", - "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=" - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - }, - "json-diff": { - "version": "0.5.4", - "resolved": "https://registry.yarnpkg.com/json-diff/-/json-diff-0.5.4.tgz#7bc8198c441756632aab66c7d9189d365a7a035a", - "integrity": "sha512-q5Xmx9QXNOzOzIlMoYtLrLiu4Jl/Ce2bn0CNcv54PhyH89CI4GWlGVDye8ei2Ijt9R3U+vsWPsXpLUNob8bs8Q==", - "requires": { - "cli-color": "~0.1.6", - "difflib": "~0.2.1", - "dreamopt": "~0.6.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "bundled": true }, "jsonfile": { "version": "6.0.1", - "resolved": "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "bundled": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^1.0.0" } }, - "jsonschema": { - "version": "1.2.6", - "resolved": "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.6.tgz#52b0a8e9dc06bbae7295249d03e4b9faee8a0c0b", - "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==" - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "md5": { - "version": "2.2.1", - "resolved": "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", - "requires": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } - }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "^1.1.7" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "netmask": { - "version": "1.0.6", - "resolved": "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "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-limit": { - "version": "2.3.0", - "resolved": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pac-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz#115b1e58f92576cac2eba718593ca7b0e37de2ad", - "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", - "requires": { - "agent-base": "^4.2.0", - "debug": "^4.1.1", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - } - }, - "pac-resolver": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-3.0.0.tgz#6aea30787db0a891704deb7800a722a7615a6f26", - "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", - "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promptly": { - "version": "3.0.3", - "resolved": "https://registry.yarnpkg.com/promptly/-/promptly-3.0.3.tgz#e178f722e73d82c60d019462044bccfdd9872f42", - "integrity": "sha512-EWnzOsxVKUjqKeE6SStH1/cO4+DE44QolaoJ4ojGd9z6pcNkpgfJKr1ncwxrOFHSTIzoudo7jG8y0re30/LO1g==", - "requires": { - "pify": "^3.0.0", - "read": "^1.0.4" - } - }, - "proxy-agent": { - "version": "3.1.1", - "resolved": "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.1.1.tgz#7e04e06bf36afa624a1540be247b47c970bd3014", - "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", - "requires": { - "agent-base": "^4.2.0", - "debug": "4", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "~0.0.4" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57", - "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" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.1", - "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } - } - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" - }, - "socks": { - "version": "2.3.3", - "resolved": "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "requires": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "requires": { - "es6-promisify": "^5.0.0" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "tar-stream": { - "version": "2.1.2", - "resolved": "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325", - "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", - "requires": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, "universalify": { "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } - } - }, - "url": { - "version": "0.10.3", - "resolved": "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "8.2.0", - "resolved": "https://registry.yarnpkg.com/uuid/-/uuid-8.2.0.tgz#cb10dd6b118e2dada7d0cd9730ba7417c93d920e", - "integrity": "sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q==" - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" - }, - "dependencies": { - "sax": { - "version": "1.2.4", - "resolved": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - } - } - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", - "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.1" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - } - } - }, - "zip-stream": { - "version": "3.0.1", - "resolved": "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz#cb8db9d324a76c09f9b76b31a12a48638b0b9708", - "integrity": "sha512-r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==", - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } + "bundled": true + } + } + }, + "@aws-cdk/cx-api": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.58.0.tgz", + "integrity": "sha512-t1Q7fXtk8Ux/psz0zGXY9YZkJtPY7fGurMkrAwoLGpM3GCmBR+jRBYqSHG1Rtvle6H+JdVtd1Ocs/Odfaz3bYg==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.58.0", + "semver": "^7.2.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "bundled": true } } }, + "@aws-cdk/region-info": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.58.0.tgz", + "integrity": "sha512-PAkoyPu4uxGEVTKYb1Tea6A0GoAfvC09iLfoIujHFNx38IdfrHm3X9Pn1995HvFJBuzLx1hv5AcGXOFVmwb8hg==" + }, + "@org-formation/tombok": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@org-formation/tombok/-/tombok-0.0.1.tgz", + "integrity": "sha512-6F0zitevY+H3VT3MVsAo4JFlDl5kfqnhGLUwXNc652/HYEBzMru5iLkTIF6+cp/lgvTWxQJQJzH4yoYja2f9Pg==" + }, + "@types/node": { + "version": "12.19.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.16.tgz", + "integrity": "sha512-7xHmXm/QJ7cbK2laF+YYD7gb5MggHIIQwqyjin3bpEGiSuvScMQ5JZZXPvRipi1MwckTQbJZROMns/JxdnIL1Q==", + "dev": true + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + }, + "autobind-decorator": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/autobind-decorator/-/autobind-decorator-2.4.0.tgz", + "integrity": "sha512-OGYhWUO72V6DafbF8PM8rm3EPbfuyMZcJhtm5/n26IDwO18pohE4eNazLoCGhPiXOCD0gEGmrbU3849QvM8bbw==" + }, "aws-sdk": { "version": "2.732.0", "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.732.0.tgz", @@ -3245,11 +266,6 @@ "isarray": "^1.0.0" } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -3455,20 +471,6 @@ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", "optional": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "string.prototype.replaceall": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.replaceall/-/string.prototype.replaceall-1.0.4.tgz", diff --git a/resource-types/VSCodeRemoteDevelopment/package.json b/resource-types/VSCodeRemoteDevelopment/package.json index b78cf29..dd054f2 100644 --- a/resource-types/VSCodeRemoteDevelopment/package.json +++ b/resource-types/VSCodeRemoteDevelopment/package.json @@ -15,14 +15,10 @@ }, "dependencies": { "@aws-cdk/aws-ec2": "npm:@rhaws/aws-ec2@^1.58.0", - "@aws-cdk/aws-ecs": "1.58.0", - "@aws-cdk/aws-efs": "1.58.0", "@aws-cdk/aws-iam": "1.58.0", "@aws-cdk/core": "1.58.0", "@types/uuid": "^8.3.0", - "aws-cdk": "1.58.0", "cfn-rpdk": "https://github.com/eduardomourar/cloudformation-cli-typescript-plugin/releases/download/v0.5.0/cfn-rpdk-0.5.0.tgz", - "source-map-support": "^0.5.16", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts b/resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts index 6849ec4..6bcd062 100755 --- a/resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts +++ b/resource-types/VSCodeRemoteDevelopment/src/devinstance-app.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node -import 'source-map-support/register'; import * as cdk from '@aws-cdk/core'; import { DevinstanceStack } from './devinstance-stack'; diff --git a/resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts b/resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts index cc1a155..58de178 100644 --- a/resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts +++ b/resource-types/VSCodeRemoteDevelopment/src/devinstance-stack.ts @@ -1,9 +1,6 @@ import * as cdk from '@aws-cdk/core' import * as ec2 from '@aws-cdk/aws-ec2' -import * as ecs from '@aws-cdk/aws-ecs' import * as iam from '@aws-cdk/aws-iam' -import * as efs from '@aws-cdk/aws-efs' -import * as fs from 'fs' import { v4 as uuidv4 } from 'uuid' export class DevinstanceStack extends cdk.Stack { diff --git a/resource-types/VSCodeRemoteDevelopment/src/devinstance.ts b/resource-types/VSCodeRemoteDevelopment/src/devinstance.ts index 6d9626c..2233a47 100644 --- a/resource-types/VSCodeRemoteDevelopment/src/devinstance.ts +++ b/resource-types/VSCodeRemoteDevelopment/src/devinstance.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node -import 'source-map-support/register'; import * as cdk from '@aws-cdk/core'; import { DevinstanceStack } from './devinstance-stack'; From 594b7c66677e3f0e84e8dab32b92c460ac286711 Mon Sep 17 00:00:00 2001 From: Robert Hoffmann Date: Fri, 9 Apr 2021 15:14:56 +0000 Subject: [PATCH 4/7] Fix devcontainer.json to use the correct mounts. --- .../.devcontainer/devcontainer.json | 7 +++---- resource-types/VSCodeRemoteDevelopment/README.md | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json b/resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json index f1b9a2f..6d50dea 100644 --- a/resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json +++ b/resource-types/VSCodeRemoteDevelopment/.devcontainer/devcontainer.json @@ -23,13 +23,12 @@ // Use 'forwardPorts' to make a list of ports inside the container available locally. "forwardPorts": [80], - "workspaceFolder": "/mnt/efs/fs1/workspace", - "workspaceMount": "source=/mnt/efs/fs1/workspace,target=/mnt/efs/fs1/workspace,type=bind,consistency=cached", + "workspaceFolder": "/mnt/ebs/fs1/workspace", + "workspaceMount": "source=/mnt/ebs/fs1/workspace,target=/mnt/ebs/fs1/workspace,type=bind,consistency=cached", // Mounts Docker socket into the container so that you can use Docker. "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind", - "source=/mnt/efs/fs1/home,target=/root,type=bind,consistency=cached", - "source=/mnt/efs/fs1/docker_init,target=/docker_init,type=bind,consistency=cached", + "source=/mnt/ebs/fs1/home,target=/root,type=bind,consistency=cached" ] } diff --git a/resource-types/VSCodeRemoteDevelopment/README.md b/resource-types/VSCodeRemoteDevelopment/README.md index eeec8c0..ee8e932 100644 --- a/resource-types/VSCodeRemoteDevelopment/README.md +++ b/resource-types/VSCodeRemoteDevelopment/README.md @@ -92,7 +92,7 @@ Connect to the instance once via your ssh client so that you can accept the fing ssh ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com ``` -In this code repository, open `.vscode/settings.json` and set your SSH URI (e.g. `ssh://ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com`) for `docker.host`. +In this code repository, make a copy of `.vscode/settings.template.json`, name it `settings.json` and set your SSH URI (e.g. `ssh://ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com`) for `docker.host`. Open this repository in VS Code, or, if you already did that, restart VS Code so that the config changes are applied. From 5e3fce2ef34e6ec67ede77040a055579b938bef2 Mon Sep 17 00:00:00 2001 From: Robert Hoffmann Date: Tue, 27 Apr 2021 16:13:53 +0000 Subject: [PATCH 5/7] Update dependencies and adapt code --- .../npm-shrinkwrap.json | 130 +++++++++++++----- .../VSCodeRemoteDevelopment/package.json | 4 +- .../VSCodeRemoteDevelopment/src/handlers.ts | 48 +++---- .../VSCodeRemoteDevelopment/src/models.ts | 34 ++--- 4 files changed, 129 insertions(+), 87 deletions(-) diff --git a/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json b/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json index cc4c4bb..979583c 100644 --- a/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json +++ b/resource-types/VSCodeRemoteDevelopment/npm-shrinkwrap.json @@ -276,8 +276,9 @@ } }, "cfn-rpdk": { - "version": "https://github.com/eduardomourar/cloudformation-cli-typescript-plugin/releases/download/v0.5.0/cfn-rpdk-0.5.0.tgz", - "integrity": "sha512-dWxC6Sb1NdOZb6hSLBmg3HRvMyZ3zcVRI3ZEMYbc6G5Y/JR+RRFDmOcQFRzfcT/JJrc13FLJZopgsnhYsisjqw==", + "version": "npm:@amazon-web-services-cloudformation/cloudformation-cli-typescript-lib@1.0.1", + "resolved": "https://registry.npmjs.org/@amazon-web-services-cloudformation/cloudformation-cli-typescript-lib/-/cloudformation-cli-typescript-lib-1.0.1.tgz", + "integrity": "sha512-degYITXnwEJbkUyWBTRr6dSoly9GKetpvhJ+PB04IX7vKe9+kJcCC0C+fiKSag5e3dLWamf1x6O2jWdgHkRu2Q==", "requires": { "@org-formation/tombok": "^0.0.1", "autobind-decorator": "^2.4.0", @@ -295,9 +296,9 @@ } }, "class-transformer": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.3.2.tgz", - "integrity": "sha512-9QY6QXBH/+Gt1C3HBmJCrgY6+EFpIa6aLjfDnlXFx0zQl/HjrCE7qoaI0srNrxpMIfsobCpgUdDG5JYtJOpVsw==" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.3.1.tgz", + "integrity": "sha512-cKFwohpJbuMovS8xVLmn8N2AUbAuc8pVo4zEfsUVo8qgECOogns1WVk/FkOZoxhOPTyTYFckuoH+13FO+MQ8GA==" }, "constructs": { "version": "3.0.4", @@ -313,24 +314,26 @@ } }, "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" } }, "es-to-primitive": { @@ -372,10 +375,15 @@ "function-bind": "^1.1.1" } }, - "has-symbols": { + "has-bigints": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, "ieee754": { "version": "1.1.13", @@ -383,6 +391,19 @@ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "optional": true }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-callable": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", @@ -398,6 +419,11 @@ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, "is-regex": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", @@ -407,6 +433,11 @@ "has-symbols": "^1.0.1" } }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -428,9 +459,9 @@ "optional": true }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==" }, "object-keys": { "version": "1.1.1", @@ -472,42 +503,53 @@ "optional": true }, "string.prototype.replaceall": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.replaceall/-/string.prototype.replaceall-1.0.4.tgz", - "integrity": "sha512-sS2UB5FG8JdWU16mfJdtgCJ+KJtJhuOCdwtD+l1nx3f6N1T/ou4xIq1em4Gh7yV//SqhANolAGrFeAZoIwRQrw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.replaceall/-/string.prototype.replaceall-1.0.5.tgz", + "integrity": "sha512-YUjdWElI9pgKo7mrPOMKHFZxcAa0v1uqoJkMHtlJW63rMkPLkQH71ao2XNkKY2ksHKHC8ZUFwNjN9Vry+QyCvg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "has-symbols": "^1.0.1", - "is-regex": "^1.1.1" + "is-regex": "^1.1.2" } }, "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", "dev": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", @@ -523,6 +565,18 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "xml2js": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", diff --git a/resource-types/VSCodeRemoteDevelopment/package.json b/resource-types/VSCodeRemoteDevelopment/package.json index dd054f2..fd77490 100644 --- a/resource-types/VSCodeRemoteDevelopment/package.json +++ b/resource-types/VSCodeRemoteDevelopment/package.json @@ -18,12 +18,12 @@ "@aws-cdk/aws-iam": "1.58.0", "@aws-cdk/core": "1.58.0", "@types/uuid": "^8.3.0", - "cfn-rpdk": "https://github.com/eduardomourar/cloudformation-cli-typescript-plugin/releases/download/v0.5.0/cfn-rpdk-0.5.0.tgz", + "cfn-rpdk": "npm:@amazon-web-services-cloudformation/cloudformation-cli-typescript-lib@^1.0.1", "uuid": "^8.3.2" }, "devDependencies": { "@types/node": "^12.19.16", - "typescript": "^3.8.3" + "typescript": "^4.2.4" }, "optionalDependencies": { "aws-sdk": "^2.656.0" diff --git a/resource-types/VSCodeRemoteDevelopment/src/handlers.ts b/resource-types/VSCodeRemoteDevelopment/src/handlers.ts index 2dbd323..9d6e81f 100644 --- a/resource-types/VSCodeRemoteDevelopment/src/handlers.ts +++ b/resource-types/VSCodeRemoteDevelopment/src/handlers.ts @@ -80,20 +80,20 @@ async function getResourceModelFromStack(session: Optional, stackN return new ResourceModel( { - UID: stackName, - InstanceType: props.instanceType, - DiskSize: parseInt(props.diskSize) as number, - Keypair: props.keypair, - SSH: outputs.ssh + uID: stackName, + instanceType: props.instanceType, + diskSize: parseInt(props.diskSize) as number, + keypair: props.keypair, + sSH: outputs.ssh } ) } function getStackParametersFromModel(model: ResourceModel): AWS.CloudFormation.Parameters { return [ - { ParameterKey: "keypair", ParameterValue: model.Keypair }, - { ParameterKey: "instanceType", ParameterValue: model.InstanceType }, - { ParameterKey: "diskSize", ParameterValue: model.DiskSize.toString() } + { ParameterKey: "keypair", ParameterValue: model.keypair }, + { ParameterKey: "instanceType", ParameterValue: model.instanceType }, + { ParameterKey: "diskSize", ParameterValue: model.diskSize.toString() } ] } @@ -131,7 +131,7 @@ class Resource extends BaseResource { const state = callbackContext.state if (state === "creating") { - const uuid: string = model.UID + const uuid: string = model.uID const response = await getCfClient(session).describeStacks({ StackName: uuid }).promise() const stack = response.Stacks[0] if (stack.StackStatus === "CREATE_COMPLETE") { @@ -139,7 +139,7 @@ class Resource extends BaseResource { map[item.OutputKey] = item.OutputValue return map }, {}) - model.SSH = outputs.ssh + model.sSH = outputs.ssh progress.status = OperationStatus.Success emptyContext(progress) } else if (cfFailed(stack.StackStatus)) { @@ -150,7 +150,7 @@ class Resource extends BaseResource { } else { try { - if (model.SSH !== undefined || model.UID !== undefined) { + if (model.sSH !== undefined || model.uID !== undefined) { return createErrorProgressEvent(new Error("The SSH and UID properties are read-only."), HandlerErrorCode.InvalidRequest) } const uuid: string = "DevInstance-" + uuidv4() @@ -160,7 +160,7 @@ class Resource extends BaseResource { setContext(progress, { state: "creating" }) - model.UID = uuid + model.uID = uuid } catch (err) { emptyContext(progress) return createErrorProgressEvent(err, HandlerErrorCode.InvalidRequest) @@ -199,7 +199,7 @@ class Resource extends BaseResource { const state = callbackContext.state if (state === "updating") { - const response = await getCfClient(session).describeStacks({ StackName: model.UID }).promise() + const response = await getCfClient(session).describeStacks({ StackName: model.uID }).promise() const stack = response.Stacks[0] if (stack.StackStatus === "UPDATE_COMPLETE") { progress.status = OperationStatus.Success @@ -212,14 +212,14 @@ class Resource extends BaseResource { } else { try { - if (model.UID === undefined || model.UID === "") { + if (model.uID === undefined || model.uID === "") { const err = new Error("Empty UID does not exist") as any err.code = "ValidationError" throw err } const parameters = getStackParametersFromModel(model) const template = JSON.stringify(getTemplate()) - await getCfClient(session).updateStack({ StackName: model.UID, Parameters: parameters, Capabilities: ["CAPABILITY_IAM"], TemplateBody: template }).promise() + await getCfClient(session).updateStack({ StackName: model.uID, Parameters: parameters, Capabilities: ["CAPABILITY_IAM"], TemplateBody: template }).promise() setContext(progress, { state: "updating" }) @@ -286,7 +286,7 @@ class Resource extends BaseResource { } } else { - uuid = model.UID + uuid = model.uID try { const response = await getCfClient(session).describeStacks({ StackName: uuid }).promise() const stack = response.Stacks[0] @@ -307,7 +307,7 @@ class Resource extends BaseResource { } if (progress.status === OperationStatus.InProgress) { const minimalModel = new ResourceModel() - minimalModel.UID = uuid + minimalModel.uID = uuid progress.resourceModel = minimalModel } @@ -332,20 +332,8 @@ class Resource extends BaseResource { ): Promise { debugLog(Action.Read, request, callbackContext) - /* - const test = new ResourceModel( - { - UID: "stackName", - InstanceType: "props", - DiskSize: 100, - Keypair: "dev", - SSH: "url" - } - ) - console.log(test) - */ try { - const model: ResourceModel = await getResourceModelFromStack(session, request.desiredResourceState.UID) + const model: ResourceModel = await getResourceModelFromStack(session, request.desiredResourceState.uID) const progress: ProgressEvent = ProgressEvent.builder() .status(OperationStatus.Success) .resourceModel(model) diff --git a/resource-types/VSCodeRemoteDevelopment/src/models.ts b/resource-types/VSCodeRemoteDevelopment/src/models.ts index 6e55873..0574a69 100644 --- a/resource-types/VSCodeRemoteDevelopment/src/models.ts +++ b/resource-types/VSCodeRemoteDevelopment/src/models.ts @@ -13,55 +13,55 @@ export class ResourceModel extends BaseModel { @Expose({ name: 'UID' }) @Transform( - ({ value, key, obj, type }) => - transformValue(String, 'UID', value, obj, []), + (value: any, obj: any) => + transformValue(String, 'uID', value, obj, []), { toClassOnly: true, } ) - UID?: Optional; + uID?: Optional; @Expose({ name: 'InstanceType' }) @Transform( - ({ value, key, obj, type }) => - transformValue(String, 'InstanceType', value, obj, []), + (value: any, obj: any) => + transformValue(String, 'instanceType', value, obj, []), { toClassOnly: true, } ) - InstanceType?: Optional; + instanceType?: Optional; @Expose({ name: 'DiskSize' }) @Transform( - ({ value, key, obj, type }) => - transformValue(Integer, 'DiskSize', value, obj, []), + (value: any, obj: any) => + transformValue(Integer, 'diskSize', value, obj, []), { toClassOnly: true, } ) - DiskSize?: Optional; + diskSize?: Optional; @Expose({ name: 'Keypair' }) @Transform( - ({ value, key, obj, type }) => - transformValue(String, 'Keypair', value, obj, []), + (value: any, obj: any) => + transformValue(String, 'keypair', value, obj, []), { toClassOnly: true, } ) - Keypair?: Optional; + keypair?: Optional; @Expose({ name: 'SSH' }) @Transform( - ({ value, key, obj, type }) => - transformValue(String, 'SSH', value, obj, []), + (value: any, obj: any) => + transformValue(String, 'sSH', value, obj, []), { toClassOnly: true, } ) - SSH?: Optional; + sSH?: Optional; @Exclude() public getPrimaryIdentifier(): Dict { const identifier: Dict = {}; - if (this.UID != null) { - identifier[this.IDENTIFIER_KEY_UID] = this.UID; + if (this.uID != null) { + identifier[this.IDENTIFIER_KEY_UID] = this.uID; } // only return the identifier if it can be used, i.e. if all components are present From 12412455c239ddaf4cdd805ce21a0614c0b3052d Mon Sep 17 00:00:00 2001 From: Robert Hoffmann Date: Tue, 18 May 2021 12:08:51 +0000 Subject: [PATCH 6/7] Fix readme --- .../VSCodeRemoteDevelopment/README.md | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/resource-types/VSCodeRemoteDevelopment/README.md b/resource-types/VSCodeRemoteDevelopment/README.md index ee8e932..066171d 100644 --- a/resource-types/VSCodeRemoteDevelopment/README.md +++ b/resource-types/VSCodeRemoteDevelopment/README.md @@ -22,23 +22,22 @@ The `Devinstance` resource supports this in the following ways: ## Installing the resource type -This resource type is built with the [community Typescript plugin for CloudFormation](https://github.com/eduardomourar/cloudformation-cli-typescript-plugin): +This resource type is built with the [Typescript plugin for CloudFormation](https://github.com/aws-cloudformation/cloudformation-cli-typescript-plugin): ``` -pip install git+https://github.com/eduardomourar/cloudformation-cli-typescript-plugin.git@v0.5.0#egg=cloudformation-cli-typescript-plugin +pip install cloudformation-cli-typescript-plugin ``` -Note that as of this writing, the Typescript plugin does only support cfn cli version 0.1.x. You will get an error during `cfn submit` when you try to use a higher version. - After checking out this repository, ``` -git clone https://github.com/hypescaler/aws-vscode-remote-containers.git +git clone https://github.com/aws-cloudformation/aws-cloudformation-samples.git ``` a complete build and submission can be started with: ``` +cd aws-cloudformation-samples/resource-types/VSCodeRemoteDevelopment # equals "npm install && npm run build && cfn submit --set-default" npm run all @@ -68,28 +67,21 @@ If you want to use a specific AWS profile, you can add `-e AWS_PROFILE=your_prof You need to have a [key pair](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) set up. Put the name of the key pair into the `Keypair` property in `cloudformation/template.json`. The key must be known by your ssh client. ``` -aws cloudformation create-stack --stack-name myteststack01 --template-body file://cloudformation/template.json +aws cloudformation create-stack --stack-name VSCodeRemoteDevelopment --template-body file://cloudformation/template.json ``` Get the output of the stack to find the SSH URI of your instance: ``` -aws cloudformation describe-stacks --stack-name myteststack01 +aws cloudformation describe-stacks --stack-name VSCodeRemoteDevelopment --query 'Stacks[].Outputs[?OutputKey==`ssh`].OutputValue' --output text - ... - "Outputs": [ - { - "OutputKey": "ssh", - "OutputValue": "ssh://ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com" - } - ], - ... +ssh://ec2-user@ec2-example-do-not-use.compute-1.amazonaws.com ``` Connect to the instance once via your ssh client so that you can accept the fingerprint: ``` -ssh ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com +ec2-user@ec2-example-do-not-use.compute-1.amazonaws.com ``` In this code repository, make a copy of `.vscode/settings.template.json`, name it `settings.json` and set your SSH URI (e.g. `ssh://ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com`) for `docker.host`. @@ -119,7 +111,7 @@ You can in `template.json` and then update your stack: ``` -aws cloudformation update-stack --stack-name myteststack01 --template-body file://cloudformation/template.json +aws cloudformation update-stack --stack-name VSCodeRemoteDevelopment --template-body file://cloudformation/template.json ``` Any update will result in the recreation of the instance. After that, you will need to clean your `known_hosts` file from the old fingerprint and connect once via your SSH client to accept the new one. From 3d897b2f9fcf5c168c577510278ee4fa8c614876 Mon Sep 17 00:00:00 2001 From: Robert Hoffmann Date: Tue, 18 May 2021 12:12:05 +0000 Subject: [PATCH 7/7] Fix ssh URI --- resource-types/VSCodeRemoteDevelopment/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource-types/VSCodeRemoteDevelopment/README.md b/resource-types/VSCodeRemoteDevelopment/README.md index 066171d..dcde481 100644 --- a/resource-types/VSCodeRemoteDevelopment/README.md +++ b/resource-types/VSCodeRemoteDevelopment/README.md @@ -84,7 +84,7 @@ Connect to the instance once via your ssh client so that you can accept the fing ec2-user@ec2-example-do-not-use.compute-1.amazonaws.com ``` -In this code repository, make a copy of `.vscode/settings.template.json`, name it `settings.json` and set your SSH URI (e.g. `ssh://ec2-user@ec2-3-122-69-112.eu-central-1.compute.amazonaws.com`) for `docker.host`. +In this code repository, make a copy of `.vscode/settings.template.json`, name it `settings.json` and set your SSH URI (e.g. `ssh://ec2-user@ec2-example-do-not-use.compute-1.amazonaws.com`) for `docker.host`. Open this repository in VS Code, or, if you already did that, restart VS Code so that the config changes are applied.