├── .dependabot └── config.yml ├── .eslintignore ├── .eslintrc ├── .github ├── semantic.yml └── workflows │ ├── ci.yml │ ├── dependabot-approver.yml │ └── pull-requests.yml ├── .gitignore ├── CONTRIBUTING.md ├── README.md ├── index.ts ├── lib ├── create-app.ts ├── resolvers │ ├── default.ts │ ├── index.ts │ └── resolver.ts ├── template.ts ├── templates.ts └── utils.ts ├── package.json ├── tsconfig.json └── yarn.lock /.dependabot/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # See: https://dependabot.com/docs/config-file/ 3 | version: 1 4 | update_configs: 5 | - directory: / 6 | package_manager: javascript 7 | update_schedule: live 8 | version_requirement_updates: increase_versions -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": [ 5 | "@typescript-eslint" 6 | ], 7 | "extends": [ 8 | "eslint:recommended", 9 | "plugin:@typescript-eslint/eslint-recommended", 10 | "plugin:@typescript-eslint/recommended" 11 | ] 12 | } -------------------------------------------------------------------------------- /.github/semantic.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Semantic Pull Requests 2 | titleOnly: true 3 | 4 | types: 5 | - feat 6 | - fix 7 | - docs 8 | - style 9 | - refactor 10 | - perf 11 | - test 12 | - build 13 | - ci 14 | - chore 15 | - revert 16 | - release -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CICD 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | - name: Setup Node 13 | uses: actions/setup-node@v1 14 | with: 15 | node-version: 12.x 16 | registry-url: 'https://registry.npmjs.org' 17 | - run: yarn install 18 | - run: yarn lint 19 | - run: yarn build 20 | - run: yarn publish 21 | env: 22 | NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/dependabot-approver.yml: -------------------------------------------------------------------------------- 1 | # Automatically approve PRs made by Dependabot 2 | # 3 | # Written to look at the original author of the PR (instead of the current 4 | # actor) in order to be able to backresolve existing PRs using this action (by 5 | # mass labeling them). Leads to slightly unnecessary spammage of aprovals in a 6 | # PR... 7 | # 8 | # Only does approvals! A different GitHub Action takes care of merging. 9 | name: Auto-approve Dependabot 10 | on: 11 | pull_request: 12 | types: 13 | - labeled 14 | - opened 15 | - ready_for_review 16 | - reopened 17 | - synchronize 18 | - unlabeled 19 | - unlocked 20 | jobs: 21 | build: 22 | runs-on: ubuntu-latest 23 | steps: 24 | - uses: hmarr/auto-approve-action@7782c7e2bdf62b4d79bdcded8332808fd2f179cd 25 | if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'dependabot-preview[bot]' 26 | with: 27 | github-token: "${{ secrets.GITHUB_TOKEN }}" 28 | -------------------------------------------------------------------------------- /.github/workflows/pull-requests.yml: -------------------------------------------------------------------------------- 1 | name: Pull Requests 2 | 3 | on: pull_request 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v2 10 | - name: Setup Node 11 | uses: actions/setup-node@v1 12 | with: 13 | node-version: 12.x 14 | registry-url: 'https://registry.npmjs.org' 15 | - run: yarn install 16 | - run: yarn lint 17 | - run: yarn build 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | .DS_Store 4 | .vscode 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Pull requests are welcome. 4 | 5 | ## Development 6 | 7 | ### Install Dependencies 8 | 9 | ```bash 10 | $ yarn install 11 | ``` 12 | 13 | ### Watch 14 | 15 | ```bash 16 | $ yarn dev 17 | ``` 18 | 19 | ### Lint 20 | 21 | ```bash 22 | $ yarn lint 23 | ``` 24 | 25 | ### Build 26 | 27 | ```bash 28 | $ yarn build 29 | ``` 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # create-cdk-app 2 | 3 | Create CDK apps from templates. 4 | 5 | View templates [here](https://github.com/cdk-tools/templates). 6 | 7 | ## Usage 8 | 9 | **NPM** 10 | 11 | ```bash 12 | $ npx create-cdk-app 13 | ``` 14 | 15 | **Yarn** 16 | 17 | ```bash 18 | $ yarn create cdk-app 19 | ``` 20 | 21 | If you choose a `default` template, you will be prompted to choose a language. This is then passed to a child-process that runs [cdk init](https://docs.aws.amazon.com/cdk/latest/guide/tools.html#cli-init). This requires [aws-cdk](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html) to be installed and available in the context of the shell. 22 | 23 | ### A template from [templates](https://github.com/cdk-tools/templates) 24 | 25 | ```bash 26 | $ yarn create cdk-app -t default my-new-app 27 | ``` 28 | 29 | This will scaffold the [default](https://github.com/cdk-tools/templates/tree/master/templates/default) template into the `my-new-app` directory. 30 | 31 | ## Authentication 32 | 33 | It is highly recommended that you set the following to environment variables: 34 | 35 | ```bash 36 | GITHUB_USERNAME= 37 | GITHUB_TOKEN= 38 | ``` 39 | 40 | These will be pulled in and used for all github-related requests. 41 | 42 | Github will rate-limit you to 5000 calls per hour if you're not using authentication. This limit is easily reached if you use a lot of other tools that are making these types of requests, or if you share an internet connection with many other people interacting with github. 43 | 44 | Using authentication also comes with the added benefit of being able to use private repos as template sources. 45 | 46 | ## Adding a template 47 | 48 | Please review the template [contributing documentation](https://github.com/cdk-tools/templates/blob/master/CONTRIBUTING.md). 49 | 50 | ## Contributing 51 | 52 | Please review the [contributing documentation](https://github.com/cdk-tools/create-cdk-app/blob/master/CONTRIBUTING.md). 53 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import path from 'path'; 3 | import arg from 'arg'; 4 | import makeDir from 'make-dir'; 5 | import checkForUpdate from 'update-check'; 6 | import packageJson from './package.json'; 7 | import { createApp } from './lib/create-app'; 8 | import { promptForTemplate } from './lib/templates'; 9 | import { executeCommand } from './lib/utils'; 10 | import { chooseLanguage } from './lib/templates'; 11 | 12 | const args = arg({ 13 | '--help': Boolean, 14 | '--version': Boolean, 15 | '--debug': Boolean, 16 | '--template': String, 17 | '-t': '--template', 18 | '-v': '--version', 19 | '-h': '--help', 20 | '-d': '--debug' 21 | }); 22 | 23 | if (args['--version']) { 24 | console.log(`create-cdk-app v${packageJson.version}`); 25 | process.exit(0); 26 | } 27 | 28 | if (args['--help']) { 29 | console.log(` 30 | Usage 31 | $ create-cdk-app 32 | Options 33 | --template, -t Template [name]|[url] 34 | --version, -v Version number 35 | --help, -h Displays this message 36 | --debug, -d Enable verbose logging 37 | `); 38 | process.exit(0); 39 | } 40 | 41 | const debug = args['--debug'] ? args['--debug'] : false; 42 | 43 | async function run() { 44 | // handle project directory 45 | if (args._.length === 0) { 46 | console.error(`No project directory was specified`); 47 | process.exit(1); 48 | } 49 | 50 | const projectPath = path.resolve(args._[0]); 51 | 52 | // handle template name 53 | const template = args['--template'] ? args['--template'] : await promptForTemplate(); 54 | 55 | if (template === 'cdk-init') { 56 | try { 57 | await makeDir(projectPath); 58 | process.chdir(projectPath); // cdk init must be run within the new directory 59 | const language = await chooseLanguage(); 60 | console.log(`Initializing new cdk ${language} app with the cdk cli`); 61 | console.log('This might take a minute or two.') 62 | const res = await executeCommand(`cdk init app --language=${language}`); 63 | console.log(res); 64 | process.exit(0); 65 | } catch (e) { 66 | console.error(e.toString()); 67 | process.exit(1); 68 | } 69 | } 70 | 71 | await createApp({ 72 | template, 73 | projectPath, 74 | debug 75 | }); 76 | } 77 | 78 | const update = checkForUpdate(packageJson).catch(() => null) 79 | 80 | async function notifyUpdate(): Promise { 81 | try { 82 | const res = await update 83 | if (res?.latest) { 84 | console.log('A new version of `create-cdk-app` is available!') 85 | console.log('You can update by running: yarn global add create-cdk-app'); 86 | } 87 | process.exit(); 88 | } catch { 89 | // ignore error 90 | } 91 | } 92 | 93 | run() 94 | .then(notifyUpdate) 95 | .catch(async (reason) => { 96 | console.log('Aborting installation.'); 97 | console.log('Unexpected error'); 98 | console.log(reason); 99 | await notifyUpdate(); 100 | process.exit(1); 101 | }) 102 | -------------------------------------------------------------------------------- /lib/create-app.ts: -------------------------------------------------------------------------------- 1 | import chalk from 'chalk'; 2 | import makeDir from 'make-dir'; 3 | 4 | import { isDirEmpty } from './utils'; 5 | import { getTemplateType } from './template'; 6 | import { getResolver } from './resolvers'; 7 | 8 | export interface CreateAppProps { 9 | projectPath: string; 10 | template: string; 11 | debug: boolean; 12 | } 13 | 14 | export async function createApp({ projectPath, template, debug }: CreateAppProps): Promise { 15 | if (debug) { 16 | console.log(`creating app with template: ${template} in directory: ${projectPath}`); 17 | } 18 | 19 | if (debug) { 20 | console.log(`creating directory: ${projectPath}`) 21 | } 22 | 23 | await makeDir(projectPath); 24 | 25 | if (!(await isDirEmpty(projectPath))) { 26 | console.log(chalk.red(`directory: ${projectPath} is not empty`)); 27 | process.exit(1); 28 | } 29 | 30 | if (debug) { 31 | console.log(`changing directories into: ${projectPath}`) 32 | } 33 | 34 | process.chdir(projectPath); 35 | 36 | const templateType = getTemplateType(template, debug); 37 | const resolver = getResolver(template, templateType, debug); 38 | await resolver.downloadAndExtract(projectPath, debug); 39 | } -------------------------------------------------------------------------------- /lib/resolvers/default.ts: -------------------------------------------------------------------------------- 1 | import { Stream } from 'stream'; 2 | import { promisify } from 'util'; 3 | 4 | import got from 'got'; 5 | import tar from 'tar'; 6 | 7 | import { Resolver } from './resolver'; 8 | import { checkGithubAuth, Auth } from '../utils'; 9 | 10 | const pipeline = promisify(Stream.pipeline); 11 | 12 | export class DefaultResolver extends Resolver { 13 | private readonly auth?: Auth; 14 | private readonly owner: string; 15 | private readonly name: string; 16 | private readonly filepath: string; 17 | 18 | constructor(name: string) { 19 | super(); 20 | this.owner = 'cdk-tools'; 21 | this.name = 'templates'; 22 | this.filepath = name; 23 | this.auth = checkGithubAuth(); 24 | } 25 | 26 | private async getMasterShortRef() { 27 | const gotOptions = {}; 28 | if (this.auth) { 29 | Object.assign(gotOptions, this.auth); 30 | } 31 | const endpoint = `https://api.github.com/repos/${this.owner}/${this.name}/git/ref/heads/master`; 32 | const res = await got(endpoint, gotOptions); 33 | const sha: string = JSON.parse(res.body).object.sha; 34 | return sha.substr(0, 7); 35 | } 36 | 37 | public async downloadAndExtract(dir: string, debug=false): Promise { 38 | // https://developer.github.com/v3/repos/contents/#download-a-repository-archive 39 | const endpoint = `https://api.github.com/repos/${this.owner}/${this.name}/tarball/heads/master`; 40 | if (debug) { 41 | console.log(`fetching endpoint: ${endpoint}`) 42 | } 43 | const gotOptions = {}; 44 | if (this.auth) { 45 | Object.assign(gotOptions, this.auth); 46 | } 47 | const sha = await this.getMasterShortRef(); 48 | if (debug) { 49 | console.log(`starting stream of tarball into: ${dir}`) 50 | } 51 | return pipeline( 52 | got.stream(endpoint, gotOptions), 53 | tar.extract( 54 | { cwd: dir, strip: 3, strict: true }, 55 | [`cdk-tools-templates-${sha}/${this.filepath}`] 56 | ) 57 | ); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /lib/resolvers/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import { TemplateType } from '../template'; 3 | import { Resolver } from './resolver'; 4 | import { DefaultResolver } from './default'; 5 | 6 | export function getResolver(template: string, templateType: TemplateType, debug=false): Resolver { 7 | if (templateType === TemplateType.EXTERNAL) { 8 | console.error('no resolvers available for external urls'); 9 | process.exit(0); 10 | } else { 11 | if (debug) { 12 | console.log(`using default resolver`) 13 | } 14 | return new DefaultResolver(template); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/resolvers/resolver.ts: -------------------------------------------------------------------------------- 1 | export abstract class Resolver { 2 | public abstract async downloadAndExtract(path: string, debug?: boolean): Promise; 3 | } 4 | -------------------------------------------------------------------------------- /lib/template.ts: -------------------------------------------------------------------------------- 1 | import { isUrl } from './utils'; 2 | 3 | export enum TemplateType { 4 | EXTERNAL='EXTERNAL', 5 | STANDARD='STANDARD' 6 | } 7 | 8 | export function getTemplateType(template: string, debug=false): TemplateType { 9 | if (isUrl(template)) { 10 | if (debug) { 11 | console.log('template is a url') 12 | } 13 | return TemplateType.EXTERNAL; 14 | } else { 15 | if (debug) { 16 | console.log('template was not a url. falling back to the standard resolver') 17 | } 18 | return TemplateType.STANDARD; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/templates.ts: -------------------------------------------------------------------------------- 1 | import prompts from 'prompts'; 2 | import got from 'got'; 3 | import { checkGithubAuth } from './utils'; 4 | 5 | const TEMPLATES_REPO_ID='270079803'; 6 | 7 | // https://github.com/aws-samples/aws-cdk-examples?files=1 8 | const exampleLanguages = [ 9 | 'typescript', 10 | 'python', 11 | 'java', 12 | 'csharp' 13 | ]; 14 | 15 | async function listRepoPath(repoId: string, path: string): Promise { 16 | const options = {}; 17 | const auth = checkGithubAuth(); 18 | if (auth) { 19 | Object.assign(options, auth); 20 | } 21 | const endpoint = `https://api.github.com/repositories/${repoId}/${path}`; 22 | const res = await got(endpoint, options); 23 | return JSON.parse(res.body); 24 | } 25 | 26 | async function listTemplates(): Promise { 27 | try { 28 | return listRepoPath(TEMPLATES_REPO_ID, `contents/templates`); 29 | } catch (e) { 30 | console.error(`Failed to list templates`); 31 | process.exit(1); 32 | } 33 | } 34 | 35 | async function chooseTemplate() { 36 | const choices = await listTemplates(); 37 | const example = await prompts({ 38 | type: 'select', 39 | name: 'value', 40 | message: 'Select template', 41 | choices: choices.map((choice: any) => { 42 | return { 43 | title: choice.name, 44 | value: choice.name 45 | } 46 | }) 47 | }); 48 | 49 | if (!example.value) { 50 | console.log('Please specify a template'); 51 | process.exit(1); 52 | } 53 | 54 | return example.value; 55 | } 56 | 57 | export async function chooseLanguage(): Promise { 58 | const language = await prompts({ 59 | type: 'select', 60 | name: 'value', 61 | message: 'Pick a language', 62 | choices: exampleLanguages.map(language => { 63 | return { 64 | title: language, 65 | value: language 66 | } 67 | }) 68 | }); 69 | 70 | if (!language.value) { 71 | console.log('Please specify the language'); 72 | process.exit(1); 73 | } 74 | 75 | return language.value; 76 | } 77 | 78 | export async function promptForTemplate(): Promise { 79 | const template = await prompts({ 80 | type: 'select', 81 | name: 'value', 82 | message: 'Pick a template', 83 | choices: [ 84 | { title: 'Default cdk app', value: 'cdk-init' }, 85 | { title: 'Example from the cdk-tools/templates repo', value: 'templates' } 86 | ], 87 | }); 88 | 89 | if (!template.value) { 90 | console.log('Please specify a template'); 91 | process.exit(1); 92 | } 93 | 94 | let choice: string; 95 | if (template.value === 'cdk-init') { 96 | choice = 'cdk-init'; 97 | } else if (template.value === 'templates') { 98 | choice = `templates/${await chooseTemplate()}`; 99 | } else { 100 | console.error(`Unknown template: ${template.value}`); 101 | process.exit(0); 102 | } 103 | 104 | return choice; 105 | } -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { promises as fsp } from 'fs'; 2 | import { exec } from 'child_process'; 3 | 4 | export async function isDirEmpty(dir: string): Promise { 5 | return await fsp.readdir(dir).then(f => f.length === 0); 6 | } 7 | 8 | export function isUrl(url: string): boolean { 9 | try { 10 | new URL(url); 11 | return true; 12 | } catch (e) { 13 | return false; 14 | } 15 | } 16 | 17 | export async function executeCommand(command: string): Promise { 18 | return new Promise((resolve, reject) => { 19 | exec(command, function(error: any, stdout: any, stderr: any){ 20 | if (error) { reject(error) } 21 | if (stderr) { reject(stderr) } 22 | resolve(stdout) 23 | }); 24 | }); 25 | } 26 | 27 | export interface Auth { 28 | username: string, 29 | password: string; 30 | } 31 | 32 | export function checkGithubAuth(): Auth | undefined { 33 | const username = process.env.GITHUB_USERNAME; 34 | const password = process.env.GITHUB_TOKEN; 35 | 36 | if (username && password) { 37 | return { 38 | username, 39 | password 40 | }; 41 | } else { 42 | return undefined; 43 | } 44 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-cdk-app", 3 | "version": "0.1.6", 4 | "keywords": [ 5 | "cdk", 6 | "aws", 7 | "create-app", 8 | "aws-cdk" 9 | ], 10 | "description": "Create CDK-powered apps with one command", 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/cdk-tools/create-cdk-app" 14 | }, 15 | "author": "Joe Snell ", 16 | "license": "MIT", 17 | "bin": { 18 | "create-cdk-app": "./dist/index.js" 19 | }, 20 | "files": [ 21 | "dist" 22 | ], 23 | "scripts": { 24 | "dev": "ncc build ./index.ts -w -o dist/", 25 | "prerelease": "rimraf ./dist/", 26 | "build": "ncc build ./index.ts -o ./dist/ --minify --no-cache --no-source-map-register", 27 | "lint": "eslint . --ext .ts" 28 | }, 29 | "devDependencies": { 30 | "@types/prompts": "^2.0.8", 31 | "@types/rimraf": "^3.0.0", 32 | "@types/tar": "^4.0.3", 33 | "@typescript-eslint/eslint-plugin": "^3.2.0", 34 | "@typescript-eslint/parser": "^3.2.0", 35 | "@zeit/ncc": "^0.22.3", 36 | "arg": "^4.1.3", 37 | "chalk": "^4.0.0", 38 | "eslint": "^7.2.0", 39 | "got": "^11.3.0", 40 | "make-dir": "^3.1.0", 41 | "prompts": "^2.3.2", 42 | "rimraf": "^3.0.2", 43 | "tar": "^6.0.2", 44 | "typescript": "^3.9.5", 45 | "update-check": "^1.5.4" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "moduleResolution": "node", 5 | "strict": true, 6 | "resolveJsonModule": true, 7 | "esModuleInterop": true, 8 | "skipLibCheck": false 9 | } 10 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.10.1" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" 8 | dependencies: 9 | "@babel/highlight" "^7.10.1" 10 | 11 | "@babel/helper-validator-identifier@^7.10.1": 12 | version "7.10.1" 13 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" 14 | 15 | "@babel/highlight@^7.10.1": 16 | version "7.10.1" 17 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" 18 | dependencies: 19 | "@babel/helper-validator-identifier" "^7.10.1" 20 | chalk "^2.0.0" 21 | js-tokens "^4.0.0" 22 | 23 | "@sindresorhus/is@^2.1.1": 24 | version "2.1.1" 25 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" 26 | 27 | "@szmarczak/http-timer@^4.0.5": 28 | version "4.0.5" 29 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" 30 | dependencies: 31 | defer-to-connect "^2.0.0" 32 | 33 | "@types/cacheable-request@^6.0.1": 34 | version "6.0.1" 35 | resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" 36 | dependencies: 37 | "@types/http-cache-semantics" "*" 38 | "@types/keyv" "*" 39 | "@types/node" "*" 40 | "@types/responselike" "*" 41 | 42 | "@types/color-name@^1.1.1": 43 | version "1.1.1" 44 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 45 | 46 | "@types/eslint-visitor-keys@^1.0.0": 47 | version "1.0.0" 48 | resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" 49 | 50 | "@types/glob@*": 51 | version "7.1.2" 52 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.2.tgz#06ca26521353a545d94a0adc74f38a59d232c987" 53 | dependencies: 54 | "@types/minimatch" "*" 55 | "@types/node" "*" 56 | 57 | "@types/http-cache-semantics@*": 58 | version "4.0.0" 59 | resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" 60 | 61 | "@types/json-schema@^7.0.3": 62 | version "7.0.4" 63 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" 64 | 65 | "@types/keyv@*": 66 | version "3.1.1" 67 | resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" 68 | dependencies: 69 | "@types/node" "*" 70 | 71 | "@types/minimatch@*": 72 | version "3.0.3" 73 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" 74 | 75 | "@types/minipass@*": 76 | version "2.2.0" 77 | resolved "https://registry.yarnpkg.com/@types/minipass/-/minipass-2.2.0.tgz#51ad404e8eb1fa961f75ec61205796807b6f9651" 78 | dependencies: 79 | "@types/node" "*" 80 | 81 | "@types/node@*": 82 | version "14.0.11" 83 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.11.tgz#61d4886e2424da73b7b25547f59fdcb534c165a3" 84 | 85 | "@types/prompts@^2.0.8": 86 | version "2.0.8" 87 | resolved "https://registry.yarnpkg.com/@types/prompts/-/prompts-2.0.8.tgz#350fc8341426b2b68a56f874ea3bae399f771800" 88 | dependencies: 89 | "@types/node" "*" 90 | 91 | "@types/responselike@*", "@types/responselike@^1.0.0": 92 | version "1.0.0" 93 | resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" 94 | dependencies: 95 | "@types/node" "*" 96 | 97 | "@types/rimraf@^3.0.0": 98 | version "3.0.0" 99 | resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.0.tgz#b9d03f090ece263671898d57bb7bb007023ac19f" 100 | dependencies: 101 | "@types/glob" "*" 102 | "@types/node" "*" 103 | 104 | "@types/tar@^4.0.3": 105 | version "4.0.3" 106 | resolved "https://registry.yarnpkg.com/@types/tar/-/tar-4.0.3.tgz#e2cce0b8ff4f285293243f5971bd7199176ac489" 107 | dependencies: 108 | "@types/minipass" "*" 109 | "@types/node" "*" 110 | 111 | "@typescript-eslint/eslint-plugin@^3.2.0": 112 | version "3.2.0" 113 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.2.0.tgz#7fb997f391af32ae6ca1dbe56bcefe4dd30bda14" 114 | dependencies: 115 | "@typescript-eslint/experimental-utils" "3.2.0" 116 | functional-red-black-tree "^1.0.1" 117 | regexpp "^3.0.0" 118 | semver "^7.3.2" 119 | tsutils "^3.17.1" 120 | 121 | "@typescript-eslint/experimental-utils@3.2.0": 122 | version "3.2.0" 123 | resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.2.0.tgz#4dab8fc9f44f059ec073470a81bb4d7d7d51e6c5" 124 | dependencies: 125 | "@types/json-schema" "^7.0.3" 126 | "@typescript-eslint/typescript-estree" "3.2.0" 127 | eslint-scope "^5.0.0" 128 | eslint-utils "^2.0.0" 129 | 130 | "@typescript-eslint/parser@^3.2.0": 131 | version "3.2.0" 132 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.2.0.tgz#d9d7867456b1b8ecae9e724269b0bc932f06cbca" 133 | dependencies: 134 | "@types/eslint-visitor-keys" "^1.0.0" 135 | "@typescript-eslint/experimental-utils" "3.2.0" 136 | "@typescript-eslint/typescript-estree" "3.2.0" 137 | eslint-visitor-keys "^1.1.0" 138 | 139 | "@typescript-eslint/typescript-estree@3.2.0": 140 | version "3.2.0" 141 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.2.0.tgz#c735f1ca6b4d3cd671f30de8c9bde30843e7ead8" 142 | dependencies: 143 | debug "^4.1.1" 144 | eslint-visitor-keys "^1.1.0" 145 | glob "^7.1.6" 146 | is-glob "^4.0.1" 147 | lodash "^4.17.15" 148 | semver "^7.3.2" 149 | tsutils "^3.17.1" 150 | 151 | "@zeit/ncc@^0.22.3": 152 | version "0.22.3" 153 | resolved "https://registry.yarnpkg.com/@zeit/ncc/-/ncc-0.22.3.tgz#fca6b86b4454ce7a7e1e7e755165ec06457f16cd" 154 | 155 | acorn-jsx@^5.2.0: 156 | version "5.2.0" 157 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" 158 | 159 | acorn@^7.2.0: 160 | version "7.2.0" 161 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" 162 | 163 | ajv@^6.10.0, ajv@^6.10.2: 164 | version "6.12.2" 165 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" 166 | dependencies: 167 | fast-deep-equal "^3.1.1" 168 | fast-json-stable-stringify "^2.0.0" 169 | json-schema-traverse "^0.4.1" 170 | uri-js "^4.2.2" 171 | 172 | ansi-escapes@^4.2.1: 173 | version "4.3.1" 174 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" 175 | dependencies: 176 | type-fest "^0.11.0" 177 | 178 | ansi-regex@^4.1.0: 179 | version "4.1.0" 180 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 181 | 182 | ansi-regex@^5.0.0: 183 | version "5.0.0" 184 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 185 | 186 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 187 | version "3.2.1" 188 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 189 | dependencies: 190 | color-convert "^1.9.0" 191 | 192 | ansi-styles@^4.1.0: 193 | version "4.2.1" 194 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" 195 | dependencies: 196 | "@types/color-name" "^1.1.1" 197 | color-convert "^2.0.1" 198 | 199 | arg@^4.1.3: 200 | version "4.1.3" 201 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 202 | 203 | argparse@^1.0.7: 204 | version "1.0.10" 205 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 206 | dependencies: 207 | sprintf-js "~1.0.2" 208 | 209 | astral-regex@^1.0.0: 210 | version "1.0.0" 211 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 212 | 213 | balanced-match@^1.0.0: 214 | version "1.0.0" 215 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 216 | 217 | brace-expansion@^1.1.7: 218 | version "1.1.11" 219 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 220 | dependencies: 221 | balanced-match "^1.0.0" 222 | concat-map "0.0.1" 223 | 224 | cacheable-lookup@^5.0.3: 225 | version "5.0.3" 226 | resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" 227 | 228 | cacheable-request@^7.0.1: 229 | version "7.0.1" 230 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" 231 | dependencies: 232 | clone-response "^1.0.2" 233 | get-stream "^5.1.0" 234 | http-cache-semantics "^4.0.0" 235 | keyv "^4.0.0" 236 | lowercase-keys "^2.0.0" 237 | normalize-url "^4.1.0" 238 | responselike "^2.0.0" 239 | 240 | callsites@^3.0.0: 241 | version "3.1.0" 242 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 243 | 244 | chalk@^2.0.0: 245 | version "2.4.2" 246 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 247 | dependencies: 248 | ansi-styles "^3.2.1" 249 | escape-string-regexp "^1.0.5" 250 | supports-color "^5.3.0" 251 | 252 | chalk@^3.0.0: 253 | version "3.0.0" 254 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" 255 | dependencies: 256 | ansi-styles "^4.1.0" 257 | supports-color "^7.1.0" 258 | 259 | chalk@^4.0.0: 260 | version "4.0.0" 261 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" 262 | dependencies: 263 | ansi-styles "^4.1.0" 264 | supports-color "^7.1.0" 265 | 266 | chardet@^0.7.0: 267 | version "0.7.0" 268 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 269 | 270 | chownr@^2.0.0: 271 | version "2.0.0" 272 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" 273 | 274 | cli-cursor@^3.1.0: 275 | version "3.1.0" 276 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 277 | dependencies: 278 | restore-cursor "^3.1.0" 279 | 280 | cli-width@^2.0.0: 281 | version "2.2.1" 282 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" 283 | 284 | clone-response@^1.0.2: 285 | version "1.0.2" 286 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 287 | dependencies: 288 | mimic-response "^1.0.0" 289 | 290 | color-convert@^1.9.0: 291 | version "1.9.3" 292 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 293 | dependencies: 294 | color-name "1.1.3" 295 | 296 | color-convert@^2.0.1: 297 | version "2.0.1" 298 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 299 | dependencies: 300 | color-name "~1.1.4" 301 | 302 | color-name@1.1.3: 303 | version "1.1.3" 304 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 305 | 306 | color-name@~1.1.4: 307 | version "1.1.4" 308 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 309 | 310 | concat-map@0.0.1: 311 | version "0.0.1" 312 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 313 | 314 | cross-spawn@^7.0.2: 315 | version "7.0.3" 316 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 317 | dependencies: 318 | path-key "^3.1.0" 319 | shebang-command "^2.0.0" 320 | which "^2.0.1" 321 | 322 | debug@^4.0.1, debug@^4.1.1: 323 | version "4.1.1" 324 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 325 | dependencies: 326 | ms "^2.1.1" 327 | 328 | decompress-response@^6.0.0: 329 | version "6.0.0" 330 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 331 | dependencies: 332 | mimic-response "^3.1.0" 333 | 334 | deep-extend@^0.6.0: 335 | version "0.6.0" 336 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 337 | 338 | deep-is@^0.1.3: 339 | version "0.1.3" 340 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 341 | 342 | defer-to-connect@^2.0.0: 343 | version "2.0.0" 344 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" 345 | 346 | doctrine@^3.0.0: 347 | version "3.0.0" 348 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 349 | dependencies: 350 | esutils "^2.0.2" 351 | 352 | emoji-regex@^7.0.1: 353 | version "7.0.3" 354 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 355 | 356 | emoji-regex@^8.0.0: 357 | version "8.0.0" 358 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 359 | 360 | end-of-stream@^1.1.0: 361 | version "1.4.4" 362 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 363 | dependencies: 364 | once "^1.4.0" 365 | 366 | escape-string-regexp@^1.0.5: 367 | version "1.0.5" 368 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 369 | 370 | eslint-scope@^5.0.0, eslint-scope@^5.1.0: 371 | version "5.1.0" 372 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" 373 | dependencies: 374 | esrecurse "^4.1.0" 375 | estraverse "^4.1.1" 376 | 377 | eslint-utils@^2.0.0: 378 | version "2.0.0" 379 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" 380 | dependencies: 381 | eslint-visitor-keys "^1.1.0" 382 | 383 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.2.0: 384 | version "1.2.0" 385 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz#74415ac884874495f78ec2a97349525344c981fa" 386 | 387 | eslint@^7.2.0: 388 | version "7.2.0" 389 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.2.0.tgz#d41b2e47804b30dbabb093a967fb283d560082e6" 390 | dependencies: 391 | "@babel/code-frame" "^7.0.0" 392 | ajv "^6.10.0" 393 | chalk "^4.0.0" 394 | cross-spawn "^7.0.2" 395 | debug "^4.0.1" 396 | doctrine "^3.0.0" 397 | eslint-scope "^5.1.0" 398 | eslint-utils "^2.0.0" 399 | eslint-visitor-keys "^1.2.0" 400 | espree "^7.1.0" 401 | esquery "^1.2.0" 402 | esutils "^2.0.2" 403 | file-entry-cache "^5.0.1" 404 | functional-red-black-tree "^1.0.1" 405 | glob-parent "^5.0.0" 406 | globals "^12.1.0" 407 | ignore "^4.0.6" 408 | import-fresh "^3.0.0" 409 | imurmurhash "^0.1.4" 410 | inquirer "^7.0.0" 411 | is-glob "^4.0.0" 412 | js-yaml "^3.13.1" 413 | json-stable-stringify-without-jsonify "^1.0.1" 414 | levn "^0.4.1" 415 | lodash "^4.17.14" 416 | minimatch "^3.0.4" 417 | natural-compare "^1.4.0" 418 | optionator "^0.9.1" 419 | progress "^2.0.0" 420 | regexpp "^3.1.0" 421 | semver "^7.2.1" 422 | strip-ansi "^6.0.0" 423 | strip-json-comments "^3.1.0" 424 | table "^5.2.3" 425 | text-table "^0.2.0" 426 | v8-compile-cache "^2.0.3" 427 | 428 | espree@^7.1.0: 429 | version "7.1.0" 430 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.1.0.tgz#a9c7f18a752056735bf1ba14cb1b70adc3a5ce1c" 431 | dependencies: 432 | acorn "^7.2.0" 433 | acorn-jsx "^5.2.0" 434 | eslint-visitor-keys "^1.2.0" 435 | 436 | esprima@^4.0.0: 437 | version "4.0.1" 438 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 439 | 440 | esquery@^1.2.0: 441 | version "1.3.1" 442 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" 443 | dependencies: 444 | estraverse "^5.1.0" 445 | 446 | esrecurse@^4.1.0: 447 | version "4.2.1" 448 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 449 | dependencies: 450 | estraverse "^4.1.0" 451 | 452 | estraverse@^4.1.0, estraverse@^4.1.1: 453 | version "4.3.0" 454 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 455 | 456 | estraverse@^5.1.0: 457 | version "5.1.0" 458 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" 459 | 460 | esutils@^2.0.2: 461 | version "2.0.3" 462 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 463 | 464 | external-editor@^3.0.3: 465 | version "3.1.0" 466 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 467 | dependencies: 468 | chardet "^0.7.0" 469 | iconv-lite "^0.4.24" 470 | tmp "^0.0.33" 471 | 472 | fast-deep-equal@^3.1.1: 473 | version "3.1.3" 474 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 475 | 476 | fast-json-stable-stringify@^2.0.0: 477 | version "2.1.0" 478 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 479 | 480 | fast-levenshtein@^2.0.6: 481 | version "2.0.6" 482 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 483 | 484 | figures@^3.0.0: 485 | version "3.2.0" 486 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" 487 | dependencies: 488 | escape-string-regexp "^1.0.5" 489 | 490 | file-entry-cache@^5.0.1: 491 | version "5.0.1" 492 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 493 | dependencies: 494 | flat-cache "^2.0.1" 495 | 496 | flat-cache@^2.0.1: 497 | version "2.0.1" 498 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 499 | dependencies: 500 | flatted "^2.0.0" 501 | rimraf "2.6.3" 502 | write "1.0.3" 503 | 504 | flatted@^2.0.0: 505 | version "2.0.2" 506 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 507 | 508 | fs-minipass@^2.0.0: 509 | version "2.1.0" 510 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" 511 | dependencies: 512 | minipass "^3.0.0" 513 | 514 | fs.realpath@^1.0.0: 515 | version "1.0.0" 516 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 517 | 518 | functional-red-black-tree@^1.0.1: 519 | version "1.0.1" 520 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 521 | 522 | get-stream@^5.1.0: 523 | version "5.1.0" 524 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" 525 | dependencies: 526 | pump "^3.0.0" 527 | 528 | glob-parent@^5.0.0: 529 | version "5.1.1" 530 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 531 | dependencies: 532 | is-glob "^4.0.1" 533 | 534 | glob@^7.1.3, glob@^7.1.6: 535 | version "7.1.6" 536 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 537 | dependencies: 538 | fs.realpath "^1.0.0" 539 | inflight "^1.0.4" 540 | inherits "2" 541 | minimatch "^3.0.4" 542 | once "^1.3.0" 543 | path-is-absolute "^1.0.0" 544 | 545 | globals@^12.1.0: 546 | version "12.4.0" 547 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" 548 | dependencies: 549 | type-fest "^0.8.1" 550 | 551 | got@^11.3.0: 552 | version "11.3.0" 553 | resolved "https://registry.yarnpkg.com/got/-/got-11.3.0.tgz#25e8da8b0125b3b984613a6b719e678dd2e20406" 554 | dependencies: 555 | "@sindresorhus/is" "^2.1.1" 556 | "@szmarczak/http-timer" "^4.0.5" 557 | "@types/cacheable-request" "^6.0.1" 558 | "@types/responselike" "^1.0.0" 559 | cacheable-lookup "^5.0.3" 560 | cacheable-request "^7.0.1" 561 | decompress-response "^6.0.0" 562 | get-stream "^5.1.0" 563 | http2-wrapper "^1.0.0-beta.4.5" 564 | lowercase-keys "^2.0.0" 565 | p-cancelable "^2.0.0" 566 | responselike "^2.0.0" 567 | 568 | has-flag@^3.0.0: 569 | version "3.0.0" 570 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 571 | 572 | has-flag@^4.0.0: 573 | version "4.0.0" 574 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 575 | 576 | http-cache-semantics@^4.0.0: 577 | version "4.1.0" 578 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 579 | 580 | http2-wrapper@^1.0.0-beta.4.5: 581 | version "1.0.0-beta.4.6" 582 | resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.4.6.tgz#9438f0fceb946c8cbd365076c228a4d3bd4d0143" 583 | dependencies: 584 | quick-lru "^5.0.0" 585 | resolve-alpn "^1.0.0" 586 | 587 | iconv-lite@^0.4.24: 588 | version "0.4.24" 589 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 590 | dependencies: 591 | safer-buffer ">= 2.1.2 < 3" 592 | 593 | ignore@^4.0.6: 594 | version "4.0.6" 595 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 596 | 597 | import-fresh@^3.0.0: 598 | version "3.2.1" 599 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" 600 | dependencies: 601 | parent-module "^1.0.0" 602 | resolve-from "^4.0.0" 603 | 604 | imurmurhash@^0.1.4: 605 | version "0.1.4" 606 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 607 | 608 | inflight@^1.0.4: 609 | version "1.0.6" 610 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 611 | dependencies: 612 | once "^1.3.0" 613 | wrappy "1" 614 | 615 | inherits@2: 616 | version "2.0.4" 617 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 618 | 619 | ini@~1.3.0: 620 | version "1.3.5" 621 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 622 | 623 | inquirer@^7.0.0: 624 | version "7.1.0" 625 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" 626 | dependencies: 627 | ansi-escapes "^4.2.1" 628 | chalk "^3.0.0" 629 | cli-cursor "^3.1.0" 630 | cli-width "^2.0.0" 631 | external-editor "^3.0.3" 632 | figures "^3.0.0" 633 | lodash "^4.17.15" 634 | mute-stream "0.0.8" 635 | run-async "^2.4.0" 636 | rxjs "^6.5.3" 637 | string-width "^4.1.0" 638 | strip-ansi "^6.0.0" 639 | through "^2.3.6" 640 | 641 | is-extglob@^2.1.1: 642 | version "2.1.1" 643 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 644 | 645 | is-fullwidth-code-point@^2.0.0: 646 | version "2.0.0" 647 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 648 | 649 | is-fullwidth-code-point@^3.0.0: 650 | version "3.0.0" 651 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 652 | 653 | is-glob@^4.0.0, is-glob@^4.0.1: 654 | version "4.0.1" 655 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 656 | dependencies: 657 | is-extglob "^2.1.1" 658 | 659 | isexe@^2.0.0: 660 | version "2.0.0" 661 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 662 | 663 | js-tokens@^4.0.0: 664 | version "4.0.0" 665 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 666 | 667 | js-yaml@^3.13.1: 668 | version "3.14.0" 669 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" 670 | dependencies: 671 | argparse "^1.0.7" 672 | esprima "^4.0.0" 673 | 674 | json-buffer@3.0.1: 675 | version "3.0.1" 676 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" 677 | 678 | json-schema-traverse@^0.4.1: 679 | version "0.4.1" 680 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 681 | 682 | json-stable-stringify-without-jsonify@^1.0.1: 683 | version "1.0.1" 684 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 685 | 686 | keyv@^4.0.0: 687 | version "4.0.1" 688 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.1.tgz#9fe703cb4a94d6d11729d320af033307efd02ee6" 689 | dependencies: 690 | json-buffer "3.0.1" 691 | 692 | kleur@^3.0.3: 693 | version "3.0.3" 694 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" 695 | 696 | levn@^0.4.1: 697 | version "0.4.1" 698 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 699 | dependencies: 700 | prelude-ls "^1.2.1" 701 | type-check "~0.4.0" 702 | 703 | lodash@^4.17.14, lodash@^4.17.15: 704 | version "4.17.19" 705 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" 706 | 707 | lowercase-keys@^2.0.0: 708 | version "2.0.0" 709 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 710 | 711 | make-dir@^3.1.0: 712 | version "3.1.0" 713 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 714 | dependencies: 715 | semver "^6.0.0" 716 | 717 | mimic-fn@^2.1.0: 718 | version "2.1.0" 719 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 720 | 721 | mimic-response@^1.0.0: 722 | version "1.0.1" 723 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 724 | 725 | mimic-response@^3.1.0: 726 | version "3.1.0" 727 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 728 | 729 | minimatch@^3.0.4: 730 | version "3.0.4" 731 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 732 | dependencies: 733 | brace-expansion "^1.1.7" 734 | 735 | minimist@^1.2.0, minimist@^1.2.5: 736 | version "1.2.5" 737 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 738 | 739 | minipass@^3.0.0: 740 | version "3.1.3" 741 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" 742 | dependencies: 743 | yallist "^4.0.0" 744 | 745 | minizlib@^2.1.0: 746 | version "2.1.0" 747 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3" 748 | dependencies: 749 | minipass "^3.0.0" 750 | yallist "^4.0.0" 751 | 752 | mkdirp@^0.5.1: 753 | version "0.5.5" 754 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 755 | dependencies: 756 | minimist "^1.2.5" 757 | 758 | mkdirp@^1.0.3: 759 | version "1.0.4" 760 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 761 | 762 | ms@^2.1.1: 763 | version "2.1.2" 764 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 765 | 766 | mute-stream@0.0.8: 767 | version "0.0.8" 768 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 769 | 770 | natural-compare@^1.4.0: 771 | version "1.4.0" 772 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 773 | 774 | normalize-url@^4.1.0: 775 | version "4.5.0" 776 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" 777 | 778 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 779 | version "1.4.0" 780 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 781 | dependencies: 782 | wrappy "1" 783 | 784 | onetime@^5.1.0: 785 | version "5.1.0" 786 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" 787 | dependencies: 788 | mimic-fn "^2.1.0" 789 | 790 | optionator@^0.9.1: 791 | version "0.9.1" 792 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 793 | dependencies: 794 | deep-is "^0.1.3" 795 | fast-levenshtein "^2.0.6" 796 | levn "^0.4.1" 797 | prelude-ls "^1.2.1" 798 | type-check "^0.4.0" 799 | word-wrap "^1.2.3" 800 | 801 | os-tmpdir@~1.0.2: 802 | version "1.0.2" 803 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 804 | 805 | p-cancelable@^2.0.0: 806 | version "2.0.0" 807 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" 808 | 809 | parent-module@^1.0.0: 810 | version "1.0.1" 811 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 812 | dependencies: 813 | callsites "^3.0.0" 814 | 815 | path-is-absolute@^1.0.0: 816 | version "1.0.1" 817 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 818 | 819 | path-key@^3.1.0: 820 | version "3.1.1" 821 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 822 | 823 | prelude-ls@^1.2.1: 824 | version "1.2.1" 825 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 826 | 827 | progress@^2.0.0: 828 | version "2.0.3" 829 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 830 | 831 | prompts@^2.3.2: 832 | version "2.3.2" 833 | resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" 834 | dependencies: 835 | kleur "^3.0.3" 836 | sisteransi "^1.0.4" 837 | 838 | pump@^3.0.0: 839 | version "3.0.0" 840 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 841 | dependencies: 842 | end-of-stream "^1.1.0" 843 | once "^1.3.1" 844 | 845 | punycode@^2.1.0: 846 | version "2.1.1" 847 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 848 | 849 | quick-lru@^5.0.0: 850 | version "5.1.1" 851 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 852 | 853 | rc@^1.0.1, rc@^1.1.6: 854 | version "1.2.8" 855 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 856 | dependencies: 857 | deep-extend "^0.6.0" 858 | ini "~1.3.0" 859 | minimist "^1.2.0" 860 | strip-json-comments "~2.0.1" 861 | 862 | regexpp@^3.0.0, regexpp@^3.1.0: 863 | version "3.1.0" 864 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" 865 | 866 | registry-auth-token@3.3.2: 867 | version "3.3.2" 868 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" 869 | dependencies: 870 | rc "^1.1.6" 871 | safe-buffer "^5.0.1" 872 | 873 | registry-url@3.1.0: 874 | version "3.1.0" 875 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 876 | dependencies: 877 | rc "^1.0.1" 878 | 879 | resolve-alpn@^1.0.0: 880 | version "1.0.0" 881 | resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" 882 | 883 | resolve-from@^4.0.0: 884 | version "4.0.0" 885 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 886 | 887 | responselike@^2.0.0: 888 | version "2.0.0" 889 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" 890 | dependencies: 891 | lowercase-keys "^2.0.0" 892 | 893 | restore-cursor@^3.1.0: 894 | version "3.1.0" 895 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 896 | dependencies: 897 | onetime "^5.1.0" 898 | signal-exit "^3.0.2" 899 | 900 | rimraf@2.6.3: 901 | version "2.6.3" 902 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 903 | dependencies: 904 | glob "^7.1.3" 905 | 906 | rimraf@^3.0.2: 907 | version "3.0.2" 908 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 909 | dependencies: 910 | glob "^7.1.3" 911 | 912 | run-async@^2.4.0: 913 | version "2.4.1" 914 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 915 | 916 | rxjs@^6.5.3: 917 | version "6.5.5" 918 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" 919 | dependencies: 920 | tslib "^1.9.0" 921 | 922 | safe-buffer@^5.0.1: 923 | version "5.2.1" 924 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 925 | 926 | "safer-buffer@>= 2.1.2 < 3": 927 | version "2.1.2" 928 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 929 | 930 | semver@^6.0.0: 931 | version "6.3.0" 932 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 933 | 934 | semver@^7.2.1, semver@^7.3.2: 935 | version "7.3.2" 936 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" 937 | 938 | shebang-command@^2.0.0: 939 | version "2.0.0" 940 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 941 | dependencies: 942 | shebang-regex "^3.0.0" 943 | 944 | shebang-regex@^3.0.0: 945 | version "3.0.0" 946 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 947 | 948 | signal-exit@^3.0.2: 949 | version "3.0.3" 950 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 951 | 952 | sisteransi@^1.0.4: 953 | version "1.0.5" 954 | resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" 955 | 956 | slice-ansi@^2.1.0: 957 | version "2.1.0" 958 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 959 | dependencies: 960 | ansi-styles "^3.2.0" 961 | astral-regex "^1.0.0" 962 | is-fullwidth-code-point "^2.0.0" 963 | 964 | sprintf-js@~1.0.2: 965 | version "1.0.3" 966 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 967 | 968 | string-width@^3.0.0: 969 | version "3.1.0" 970 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 971 | dependencies: 972 | emoji-regex "^7.0.1" 973 | is-fullwidth-code-point "^2.0.0" 974 | strip-ansi "^5.1.0" 975 | 976 | string-width@^4.1.0: 977 | version "4.2.0" 978 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 979 | dependencies: 980 | emoji-regex "^8.0.0" 981 | is-fullwidth-code-point "^3.0.0" 982 | strip-ansi "^6.0.0" 983 | 984 | strip-ansi@^5.1.0: 985 | version "5.2.0" 986 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 987 | dependencies: 988 | ansi-regex "^4.1.0" 989 | 990 | strip-ansi@^6.0.0: 991 | version "6.0.0" 992 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 993 | dependencies: 994 | ansi-regex "^5.0.0" 995 | 996 | strip-json-comments@^3.1.0: 997 | version "3.1.0" 998 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" 999 | 1000 | strip-json-comments@~2.0.1: 1001 | version "2.0.1" 1002 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1003 | 1004 | supports-color@^5.3.0: 1005 | version "5.5.0" 1006 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1007 | dependencies: 1008 | has-flag "^3.0.0" 1009 | 1010 | supports-color@^7.1.0: 1011 | version "7.1.0" 1012 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" 1013 | dependencies: 1014 | has-flag "^4.0.0" 1015 | 1016 | table@^5.2.3: 1017 | version "5.4.6" 1018 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1019 | dependencies: 1020 | ajv "^6.10.2" 1021 | lodash "^4.17.14" 1022 | slice-ansi "^2.1.0" 1023 | string-width "^3.0.0" 1024 | 1025 | tar@^6.0.2: 1026 | version "6.0.2" 1027 | resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39" 1028 | dependencies: 1029 | chownr "^2.0.0" 1030 | fs-minipass "^2.0.0" 1031 | minipass "^3.0.0" 1032 | minizlib "^2.1.0" 1033 | mkdirp "^1.0.3" 1034 | yallist "^4.0.0" 1035 | 1036 | text-table@^0.2.0: 1037 | version "0.2.0" 1038 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1039 | 1040 | through@^2.3.6: 1041 | version "2.3.8" 1042 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1043 | 1044 | tmp@^0.0.33: 1045 | version "0.0.33" 1046 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1047 | dependencies: 1048 | os-tmpdir "~1.0.2" 1049 | 1050 | tslib@^1.8.1, tslib@^1.9.0: 1051 | version "1.13.0" 1052 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" 1053 | 1054 | tsutils@^3.17.1: 1055 | version "3.17.1" 1056 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" 1057 | dependencies: 1058 | tslib "^1.8.1" 1059 | 1060 | type-check@^0.4.0, type-check@~0.4.0: 1061 | version "0.4.0" 1062 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1063 | dependencies: 1064 | prelude-ls "^1.2.1" 1065 | 1066 | type-fest@^0.11.0: 1067 | version "0.11.0" 1068 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" 1069 | 1070 | type-fest@^0.8.1: 1071 | version "0.8.1" 1072 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 1073 | 1074 | typescript@^3.9.5: 1075 | version "3.9.5" 1076 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" 1077 | 1078 | update-check@^1.5.4: 1079 | version "1.5.4" 1080 | resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.4.tgz#5b508e259558f1ad7dbc8b4b0457d4c9d28c8743" 1081 | dependencies: 1082 | registry-auth-token "3.3.2" 1083 | registry-url "3.1.0" 1084 | 1085 | uri-js@^4.2.2: 1086 | version "4.2.2" 1087 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1088 | dependencies: 1089 | punycode "^2.1.0" 1090 | 1091 | v8-compile-cache@^2.0.3: 1092 | version "2.1.1" 1093 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" 1094 | 1095 | which@^2.0.1: 1096 | version "2.0.2" 1097 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1098 | dependencies: 1099 | isexe "^2.0.0" 1100 | 1101 | word-wrap@^1.2.3: 1102 | version "1.2.3" 1103 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1104 | 1105 | wrappy@1: 1106 | version "1.0.2" 1107 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1108 | 1109 | write@1.0.3: 1110 | version "1.0.3" 1111 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 1112 | dependencies: 1113 | mkdirp "^0.5.1" 1114 | 1115 | yallist@^4.0.0: 1116 | version "4.0.0" 1117 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1118 | --------------------------------------------------------------------------------