├── .circleci └── config.yml ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .flowconfig ├── .gitignore ├── LICENSE ├── README.md ├── bin ├── createNodeApp.js └── dev.sh ├── docs ├── IDEATION.md ├── kubesail-logo.png └── term1.svg ├── package.json ├── src ├── template │ ├── README.md │ ├── bin │ │ ├── dev.sh │ │ ├── dev_api.sh │ │ └── dev_www.sh │ ├── gitignore │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ └── manifest.json │ └── src │ │ ├── api │ │ └── index.js │ │ ├── index.js │ │ └── www │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logos.svg │ │ └── serviceWorker.js └── util.js └── yarn.lock /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | docker: 5 | - image: erulabs/circleci-builder:11 6 | working_directory: ~/repo 7 | steps: 8 | - checkout 9 | 10 | - restore_cache: 11 | keys: 12 | - v1-dependencies-{{ arch }}-{{ checksum "yarn.lock" }} 13 | 14 | - run: 15 | name: Installing 16 | command: yarn --no-progress --no-emoji --prefer-offline 17 | 18 | - run: 19 | name: Linting 20 | command: ./node_modules/.bin/eslint --ignore-path=src/template/package.json . 21 | 22 | workflows: 23 | version: 2 24 | build-and-deploy: 25 | jobs: 26 | - build 27 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = LF 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | indent_style = space 9 | indent_size = 2 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | src/template/package.json 2 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "extends": ["standard", "plugin:flowtype/recommended"], 4 | "rules": { 5 | "flowtype/require-valid-file-annotation": [2, "always"], 6 | "no-console": ["warn", { "allow": ["warn", "error"] }] 7 | }, 8 | "plugins": ["flowtype", "prettier"] 9 | } 10 | -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | .*/_build/.* 3 | .*/docs/.* 4 | .*/.git/.* 5 | .*/bin/.* 6 | .*/gulpfile.js 7 | .*/*.flow 8 | .*/node_modules/bcryptjs/src/bower.json 9 | .*/node_modules/node-uuid/lib/sha1-browser.js 10 | .*/node_modules/weinre/web/client/nls/English.lproj/localizedStrings.js 11 | .*/flow-typed/.* 12 | .*/node_modules/react-event-listener/src/index.js 13 | .*/node_modules/config-chain/test/broken.json 14 | 15 | [include] 16 | ./src/ 17 | 18 | [options] 19 | suppress_comment= \\(.\\|\n\\)*\\$FlowIssue 20 | esproposal.class_instance_fields=enable 21 | module.name_mapper='^_src\/\(.*\)$' -> '/src/\1' 22 | module.ignore_non_literal_requires=true 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | _build 3 | _db 4 | .DS_Store 5 | *.tmp 6 | *.swp 7 | node_modules 8 | .git 9 | .devlog.plain 10 | /secrets 11 | .release 12 | tmp 13 | src/www/.well-known 14 | *.plain 15 | .secret 16 | .vagrant 17 | .debug 18 | *.local 19 | *.pem 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018-present, Seandon Mooy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Create Node App ![CircleCI](https://img.shields.io/circleci/build/github/kubesail/create-node-app.svg) [![npm version](https://img.shields.io/npm/v/create-node-app.svg)](https://www.npmjs.com/package/create-node-app) 2 | 3 | Create modern Node.js apps with no build configuration. In a single command, this tool bootstraps a React + Express app and a Postgres Docker container. Created apps closely follow [The Twelve Factors](https://12factor.net) of web application development. Inspired by and based on [create-react-app](https://github.com/facebook/create-react-app). 4 | 5 | ![Terminal Example](docs/term1.svg) 6 | 7 | ## Quick start 8 | 9 | #### Creating an App 10 | 11 | npx create-node-app my-app 12 | cd my-app 13 | npm start 14 | 15 | _Creates a new repository and starts a React frontend, an Express backend, and a container for Postgres locally_ 16 | 17 | #### Deploying to Production 18 | 19 | npm run deploy 20 | 21 | _Containerizes your app and its dependencies (like Postgres) and deploys them to Kubernetes_ 22 | 23 | ## What’s Included? 24 | 25 | `create-node-app` automatically sets up and manages: 26 | 27 | - A complete web app with React, Express, Postgres 28 | - A deploy script, `npm run deploy` that deploys your frontend, backend, and dependencies to Kubernetes via [deploy-node-app](https://github.com/kubesail/deploy-node-app) 29 | - A DB script `npm run psql` to explore your Dockerized Postgres 30 | - Creates a secure `Dockerfile` for containerized production deploys 31 | - Developer tools: ESLint, editorconfig, prettier, automatic reload 32 | - A [meta-module](https://github.com/metamodules/documentation) system for easy development with services like PostgreSQL, and MongoDB, all with no configuration 33 | 34 | `create-node-app` has a simple core, with a small ecosystem of _meta-modules_. 35 | 36 | ## Meta-modules 37 | 38 | Meta-modules are simple npm modules which include: 39 | 40 | - A validated and secure Node.js library 41 | - Metadata for configuring the library (Environment Variables) 42 | - A Docker Container Image which is validated to work with the chosen library 43 | - Metadata for configuring the service's container 44 | 45 | For example, the [postgres meta-module](https://github.com/metamodules/postgres) bundles the [node-postgres](https://github.com/brianc/node-postgres) library, a Postgres 11 Docker image, and knows how to connect your app to Postgres, _without any configuration!_ Meta-modules wrap some of the complexity of building microservices with Node.js, allowing you to rapidly iterate with the stack of your choice! 46 | 47 | Explore modules [here](https://github.com/metamodules) or help create them if the one you want doesn't exist! 48 | 49 | ## Free App Hosting 50 | 51 | This project is maintained by [KubeSail](https://kubesail.com), which provides free-tier hosting. After creating an app, try `npm run deploy` to easily launch your app on a Kubernetes cluster with built-in load-balancing, HTTPS, and high-availability! KubeSail also offers the best way to iterate on Kubernetes resources - check us out! 52 | 53 | ## Contributing 54 | 55 | - If you feel that this tool can be improved, or you've created a meta-module you want us to include, feel free to open an issue or pull request! 56 | - We also value contributions on [deploy-node-app](https://github.com/kubesail/deploy-node-app) which contains the bulk of the logic for creating and deploying dev and prod environments. 57 | -------------------------------------------------------------------------------- /bin/createNodeApp.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | // @flow 3 | 4 | const chalk = require('chalk') 5 | const commander = require('commander') 6 | const fs = require('fs-extra') 7 | const path = require('path') 8 | const { execSync } = require('child_process') 9 | const packageJson = require('../package.json') 10 | const { checkAppName, shouldUseYarn } = require('../src/util') 11 | const ownPath = path.join(__dirname, '..') 12 | const templatePath = path.join(ownPath, 'src', 'template') 13 | const cwd = process.cwd() 14 | const semver = require('semver') 15 | 16 | // Target the same node version that react-scripts targets 17 | if (!semver.satisfies(process.version, '>=8.10.0')) { 18 | console.log( 19 | chalk.red( 20 | `You are using Node ${process.version}, which is not supported by Create Node App.\n\n` + 21 | `Please update to Node 8.10 or higher.\n` 22 | ) 23 | ) 24 | process.exit(1) 25 | } 26 | 27 | let projectName 28 | 29 | const program = new commander.Command(packageJson.name) 30 | .version(packageJson.version) 31 | .arguments('') 32 | .usage(`${chalk.green('')} [options]`) 33 | .action(name => (projectName = name)) 34 | .option('--verbose', 'print additional logs') 35 | .allowUnknownOption() 36 | .on('--help', () => { 37 | console.log(` Only ${chalk.green('')} is required.\n`) 38 | }) 39 | .parse(process.argv) 40 | 41 | createApp(projectName, program.verbose) 42 | 43 | async function createApp (appName, verbose) { 44 | checkAppName(program.name(), appName) 45 | const useYarn = await shouldUseYarn() 46 | const appPath = path.join(cwd, appName) 47 | 48 | // Create project directory 49 | try { 50 | fs.mkdirSync(appPath) 51 | } catch (err) { 52 | if (err.code === 'EEXIST') { 53 | console.error( 54 | chalk.red(` 55 | Directory ${appPath} already exists, refusing to overwrite. 56 | `) 57 | ) 58 | process.exit(1) 59 | } else { 60 | throw err 61 | } 62 | } 63 | 64 | // Copy template files 65 | const modules = ['React', 'Express'] 66 | console.log( 67 | `\nCreating a new ${modules.map(module => chalk.cyan(module)).join(' + ')} app in ${chalk.green( 68 | appPath 69 | )}.\n` 70 | ) 71 | fs.copySync(templatePath, appPath) 72 | 73 | const appPackageJsonPath = path.join(appPath, 'package.json') 74 | const appPackageJson = JSON.parse(fs.readFileSync(appPackageJsonPath)) 75 | appPackageJson.name = appName 76 | fs.writeFileSync(appPackageJsonPath, JSON.stringify(appPackageJson, null, 2)) 77 | 78 | // Install dependencies 79 | console.log('Installing packages. This might take a couple of minutes.\n') 80 | await execSync(`${useYarn ? 'yarnpkg' : 'npm'} install`, { 81 | cwd: appPath, 82 | stdio: 'inherit' 83 | }) 84 | 85 | // .gitignore files won't be published on NPM, so they must be renamed here 86 | fs.renameSync(path.join(appPath, 'gitignore'), path.join(appPath, '.gitignore')) 87 | await execSync(`git init && git add . && git commit -m "initial commit"`, { 88 | cwd: appPath, 89 | stdio: 'inherit' 90 | }) 91 | 92 | // Display finished message 93 | const displayedCommand = useYarn ? 'yarn' : 'npm' 94 | const displayedCommandRun = `${displayedCommand}${useYarn ? '' : ' run'}` 95 | console.log() 96 | console.log(`Success! Created ${appName} at ${appPath}`) 97 | console.log('Inside that directory, you can run several commands:') 98 | console.log() 99 | console.log(chalk.cyan(` ${displayedCommand} start`)) 100 | console.log(' Starts the React + Express development servers.') 101 | console.log() 102 | console.log(chalk.cyan(` ${displayedCommandRun} deploy`)) 103 | console.log(' Containerizes and deploys the React + Express apps to Kubernetes.') 104 | console.log() 105 | console.log(chalk.cyan(` ${displayedCommand} test`)) 106 | console.log(' Starts the test runner.') 107 | console.log() 108 | console.log(chalk.cyan(` ${displayedCommandRun} eject-www`)) 109 | console.log(' Removes the Create React App tools and copies build dependencies,') 110 | console.log(' configuration files and scripts into the app directory. If you do') 111 | console.log(' this, you can’t go back!') 112 | console.log() 113 | console.log('We suggest that you begin by typing:') 114 | console.log() 115 | console.log(chalk.cyan(` cd ${appName}`)) 116 | console.log(` ${chalk.cyan(`${displayedCommand} start`)}`) 117 | const readmeExists = false // TODO detect existing files / README 118 | if (readmeExists) { 119 | console.log() 120 | console.log(chalk.yellow('You had a `README.md` file, we renamed it to `README.old.md`')) 121 | } 122 | console.log() 123 | console.log('Happy hacking!') 124 | } 125 | -------------------------------------------------------------------------------- /bin/dev.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash -e 2 | 3 | # For testing the files in Create Node App template directory 4 | 5 | cd src/template/ 6 | yarn 7 | bash ./bin/dev.sh 8 | -------------------------------------------------------------------------------- /docs/IDEATION.md: -------------------------------------------------------------------------------- 1 | # Create Node App - Ideation 2 | 3 | ## Project Goals and Aspirations 4 | 5 | While this project is usable as-is, we'd like to include the following features before considering this project "feature complete": 6 | 7 | - `git-crypt` for secure encrypted app secrets (secrets as environment variables) 8 | - Automatic set up of CI scaffolding (Jenkins, CircleCI) 9 | - HTTPS (Letsencrypt, express boilerplate, HSTS, etc) 10 | - Optional typing (Typescript & Flowtype) 11 | 12 | #### Ideas 13 | 14 | 1. Universal Node bootstrapper 15 | 16 | 1. Start simple: `create-node-app myapp` 17 | 18 | Comes with a set of default meta-modules: 19 | 20 | - `@kubesail/node-runtime` 21 | 22 | manages common Nodejs elements like `unhandledRejection`, `exitHook` 23 | 24 | - `@kubesail/logging` 25 | 26 | Adds `winston` with JSON/Plaintext output controls 27 | 28 | - `@kubesail/eslint` 29 | 30 | Adds eslint with [Standard Javascript](https://standardjs.com/) 31 | 32 | 2. Easily extend projects `create-node-app --add @kubesail/redis` 33 | 34 | - MetaModules include: 35 | 36 | - NPM dependency (`ioredis`) 37 | - Driver stub (`src/_shared/redis.js`) 38 | - Configuration stubs (`process.env.REDIS_HOSTS`, etc) 39 | - Container for development (`docker run redis...`) 40 | - Production-ready configuration (`kubectl apply -f...`) 41 | 42 | - Managed via package.json like normal packages: 43 | `json { "name": "myApp", "dependencies": { "@kubesail/redis": "^1.0.0" } }` 44 | Metamodules are entirely optional, but provide a level of plug-and-play not currently available in the JavaScript ecosystem. With a single package, I get not only a custom-tuned Node.js driver (in this case redis), I also get a Docker container for development and a Kubernetes definition for deploying to production. Additionally, configuration details are automatically added to my configuration files. While a normal NPM module simply represents a bundle of JavaScript - a MetaModule represents everything you need to accomplish a particular goal. You can think of it as a way of bundling together both the service and the driver. **We'll take care of auditing and testing version compatability, you worry about building applications**! 45 | 46 | 3. Run your stack locally with Docker or Kubernetes: 47 | 48 | `yarn run dev` (defaults to Docker) 49 | 50 | \- or - 51 | 52 | `yarn run dev --kube` 53 | 54 | Notes: 55 | 56 | 1. In development, node is run locally 57 | 2. Containers will be started with either Docker or Kubernetes 58 | 3. Service configuration from Docker or K8s will be fed to your application 59 | 4. Drivers will be automatically configured to talk to your development services 60 | 61 | 4. Deploy: 62 | 63 | 1. Have a valid Kubernetes Context. You can get a free Kubernetes cluster from https://kubesail.com to get started, but any Kubernetes cluster will work. 64 | 2. `yarn run deploy production/staging/qa` 65 | 3. The first deploy will prompt you with some questions about your environment 66 | 4. Subsequent deploys "just work"! 67 | 5. Kubernetes configurations are managed by your MetaPackages 68 | -------------------------------------------------------------------------------- /docs/kubesail-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubesail/create-node-app/f447a5cfdcf7a6213df745280b1a46508d1f7c92/docs/kubesail-logo.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-node-app", 3 | "bin": { 4 | "create-node-app": "bin/createNodeApp.js" 5 | }, 6 | "version": "1.4.3", 7 | "description": "Create Node.js apps by running one command", 8 | "main": "index.js", 9 | "repository": "https://github.com/create-node/create-node-app", 10 | "contributors": [ 11 | { 12 | "name": "Seandon Mooy", 13 | "email": "seandon@kubesail.com" 14 | }, 15 | { 16 | "name": "Dan Pastusek", 17 | "email": "dan@kubesail.com" 18 | } 19 | ], 20 | "authors": [ 21 | "Seandon Mooy ", 22 | "Dan Pastusek " 23 | ], 24 | "license": "MIT", 25 | "dependencies": { 26 | "chalk": "^2.4.2", 27 | "commander": "^2.20.3", 28 | "fs-extra": "^8.1.0", 29 | "semver": "^6.3.0", 30 | "validate-npm-package-name": "^3.0.0" 31 | }, 32 | "devDependencies": { 33 | "babel-eslint": "^10.1.0", 34 | "concurrently": "^4.1.2", 35 | "cross-spawn": "^6.0.5", 36 | "eslint": "^5.16.0", 37 | "eslint-config-react-app": "^4.0.1", 38 | "eslint-config-standard": "^12.0.0", 39 | "eslint-plugin-flowtype": "^3.13.0", 40 | "eslint-plugin-import": "^2.22.1", 41 | "eslint-plugin-jsx-a11y": "^6.4.1", 42 | "eslint-plugin-node": "^9.2.0", 43 | "eslint-plugin-prettier": "^3.4.0", 44 | "eslint-plugin-promise": "^4.3.1", 45 | "eslint-plugin-react": "^7.23.2", 46 | "eslint-plugin-react-hooks": "^1.7.0", 47 | "eslint-plugin-standard": "^4.1.0", 48 | "prettier": "^1.19.1", 49 | "react": "^16.14.0" 50 | }, 51 | "scripts": { 52 | "start": "bash ./bin/dev.sh" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/template/README.md: -------------------------------------------------------------------------------- 1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console. 14 | 15 | ### `npm test` 16 | 17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 19 | 20 | ### `npm run build` 21 | 22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance. 24 | 25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed! 27 | 28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 29 | 30 | ### `npm run eject-www` 31 | 32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 33 | 34 | This is a thin wrapper around create-react-app's `eject` command. There is currently not an `eject` option for create-node-app. 35 | 36 | ## Learn More 37 | 38 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 39 | 40 | To learn React, check out the [React documentation](https://reactjs.org/). 41 | 42 | ### Code Splitting 43 | 44 | This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting 45 | 46 | ### Analyzing the Bundle Size 47 | 48 | This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size 49 | 50 | ### Making a Progressive Web App 51 | 52 | This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app 53 | 54 | ### Advanced Configuration 55 | 56 | This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration 57 | 58 | ### Deployment 59 | 60 | This section has moved here: https://facebook.github.io/create-react-app/docs/deployment 61 | 62 | ### `npm run build` fails to minify 63 | 64 | This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify 65 | -------------------------------------------------------------------------------- /src/template/bin/dev.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Start both react + express apps concurrently 4 | ./node_modules/.bin/concurrently \ 5 | --names "www,api" \ 6 | --handle-input true \ 7 | --default-input-target 1 \ 8 | --kill-others \ 9 | --prefix-colors "bgBlue.bold,bgMagenta.bold" \ 10 | "bash ./bin/dev_www.sh" \ 11 | "bash ./bin/dev_api.sh" 12 | -------------------------------------------------------------------------------- /src/template/bin/dev_api.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | # Determine docker-compose port mapping and set environment variables 5 | ./node_modules/.bin/deploy-node-app --generate-default-env --overwrite 6 | 7 | # Bring up required dependencies 8 | ./node_modules/.bin/deploy-node-app dev --skip app --format compose --no-build --no-push --overwrite 9 | 10 | # Determine docker-compose port mapping and set environment variables 11 | ./node_modules/.bin/deploy-node-app --generate-local-ports-env --format compose --overwrite 12 | 13 | # Use nodemon to watch and reload our app codebase 14 | ./node_modules/.bin/nodemon --ignore src/www src/api/index.js 15 | -------------------------------------------------------------------------------- /src/template/bin/dev_www.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ./node_modules/.bin/react-scripts start 4 | -------------------------------------------------------------------------------- /src/template/gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env 17 | *.local 18 | *.log 19 | *.log.gz 20 | 21 | # used by deploy-node-app 22 | tmp/ 23 | secrets/ 24 | -------------------------------------------------------------------------------- /src/template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-node-app-template", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@metamodules/postgres": "^1.2.1", 7 | "deploy-node-app": "^1.4.3", 8 | "dotenv": "^8.0.0", 9 | "react": "^16.8.6", 10 | "react-dom": "^16.8.6", 11 | "react-scripts": "3.0.1" 12 | }, 13 | "devDependencies": { 14 | "concurrently": "^4.1.0", 15 | "nodemon": "^1.19.1", 16 | "babel-eslint": "10.0.1", 17 | "cross-spawn": "^6.0.5", 18 | "eslint": "^5.16.0", 19 | "eslint-config-standard": "^12.0.0", 20 | "eslint-plugin-flowtype": "2.50.1", 21 | "eslint-plugin-import": "2.16.0", 22 | "eslint-plugin-node": "^9.1.0", 23 | "eslint-plugin-prettier": "^3.1.0", 24 | "eslint-plugin-promise": "^4.1.1", 25 | "eslint-plugin-standard": "^4.0.0", 26 | "prettier": "^1.17.1" 27 | }, 28 | "scripts": { 29 | "start": "bash bin/dev.sh", 30 | "build": "react-scripts build", 31 | "deploy": "deploy-node-app", 32 | "test": "react-scripts test", 33 | "eject-www": "react-scripts eject", 34 | "psql": "export $(cat .env | xargs) && PGPASSWORD=${POSTGRES_PASSWORD} psql -h ${POSTGRES_SERVICE_HOST} -p ${POSTGRES_SERVICE_PORT} -U ${POSTGRES_USER} ${POSTGRES_DB}" 35 | }, 36 | "eslintConfig": { 37 | "extends": "react-app" 38 | }, 39 | "browserslist": [ 40 | ">0.2%", 41 | "not dead", 42 | "not ie <= 11", 43 | "not op_mini all" 44 | ], 45 | "deploy-node-app": { 46 | "prod": { 47 | "port": 4000, 48 | "protocol": "http", 49 | "entrypoint": "src/api/index.js" 50 | }, 51 | "dev": { 52 | "port": 4000, 53 | "protocol": "http", 54 | "entrypoint": "src/api/index.js", 55 | "registry": "" 56 | } 57 | }, 58 | "proxy": "http://localhost:4000" 59 | } 60 | -------------------------------------------------------------------------------- /src/template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubesail/create-node-app/f447a5cfdcf7a6213df745280b1a46508d1f7c92/src/template/public/favicon.ico -------------------------------------------------------------------------------- /src/template/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 15 | 16 | 25 | React App 26 | 27 | 28 | 29 |
30 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/template/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/template/src/api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | require('dotenv').config() 3 | const postgres = require('@metamodules/postgres')() 4 | 5 | const app = express() 6 | const port = 4000 7 | 8 | postgres.query(`CREATE TABLE IF NOT EXISTS clicks ( 9 | id BIGSERIAL PRIMARY KEY, 10 | created_at TIMESTAMP DEFAULT NOW() 11 | )`) 12 | 13 | app.get('/api/count', (req, res) => { 14 | postgres.query('SELECT count(*) AS count FROM clicks', (err, resp) => { 15 | res.send({ count: resp.rows[0].count || 0 }) 16 | }) 17 | }) 18 | 19 | app.post('/api/count/increment', (req, res) => { 20 | postgres.query('INSERT INTO clicks DEFAULT VALUES', (err, insert) => { 21 | postgres.query('SELECT count(*) AS count FROM clicks', (err, resp) => { 22 | res.send({ count: resp.rows[0].count || 0 }) 23 | }) 24 | }) 25 | }) 26 | 27 | app.listen(port, () => console.log(`Example backend API listening on port ${port}!`)) 28 | -------------------------------------------------------------------------------- /src/template/src/index.js: -------------------------------------------------------------------------------- 1 | // "Create React App" tooling expects to find the WWW root here, 2 | // so we simply use this file to import the ./www directory. 3 | // 4 | // For the backend, we set the container's entrypoint to src/api/index.js 5 | 6 | module.exports = require('./www') 7 | -------------------------------------------------------------------------------- /src/template/src/www/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | } 8 | 9 | .App-header { 10 | background-color: #282c34; 11 | min-height: 100vh; 12 | flex-direction: column; 13 | align-items: center; 14 | justify-content: center; 15 | font-size: calc(10px + 2vmin); 16 | color: white; 17 | } 18 | 19 | .App a { 20 | color: #61dafb; 21 | } 22 | 23 | .App-button { 24 | padding: 10px 20px; 25 | margin: 10px; 26 | font-size: 1.4rem; 27 | font-weight: bold; 28 | border: 2px solid white; 29 | border-radius: 5px; 30 | background: #323743; 31 | color: white; 32 | animation: App-logo-spin infinite 5s linear; 33 | cursor: pointer; 34 | } 35 | -------------------------------------------------------------------------------- /src/template/src/www/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import logos from './logos.svg' 3 | import './App.css' 4 | 5 | class App extends Component { 6 | state = { 7 | count: 'loading...' 8 | } 9 | 10 | componentDidMount = async () => { 11 | const { count } = await window.fetch(`/api/count`).then(res => res.json()) 12 | this.setState({ count }) 13 | } 14 | 15 | increment = async () => { 16 | const { count } = await window 17 | .fetch(`/api/count/increment`, { method: 'POST' }) 18 | .then(res => res.json()) 19 | this.setState({ count }) 20 | } 21 | 22 | render() { 23 | return ( 24 |
25 |
26 | logo 27 |

28 | {'Learn '} 29 | 30 | React 31 | 32 | {', '} 33 | 34 | Express 35 | 36 | {', and '} 37 | 38 | Kubernetes 39 | 40 |

41 |

42 | Modify src/www/App.js or src/api/index.js to reload UI or API. 43 |

44 |

45 | yarn deploy to build containers and deploy them to production 46 |

47 |
48 |

Count: {this.state.count}

49 |

50 | Call /api/count/increment 51 | 54 |

55 |
56 |
57 | ) 58 | } 59 | } 60 | 61 | export default App 62 | -------------------------------------------------------------------------------- /src/template/src/www/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import App from './App' 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div') 7 | ReactDOM.render(, div) 8 | ReactDOM.unmountComponentAtNode(div) 9 | }) 10 | -------------------------------------------------------------------------------- /src/template/src/www/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 5 | 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; 12 | background: #323743; 13 | padding: 5px 9px; 14 | border-radius: 3px; 15 | margin: 5px; 16 | } 17 | 18 | hr { 19 | border: 1px solid #323743; 20 | margin: 40px; 21 | } 22 | -------------------------------------------------------------------------------- /src/template/src/www/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import './index.css' 4 | import App from './App' 5 | import * as serviceWorker from './serviceWorker' 6 | 7 | ReactDOM.render(, document.getElementById('root')) 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: http://bit.ly/CRA-PWA 12 | serviceWorker.unregister() 13 | -------------------------------------------------------------------------------- /src/template/src/www/logos.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Artboard 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/template/src/www/serviceWorker.js: -------------------------------------------------------------------------------- 1 | // This optional code is used to register a service worker. 2 | // register() is not called by default. 3 | 4 | // This lets the app load faster on subsequent visits in production, and gives 5 | // it offline capabilities. However, it also means that developers (and users) 6 | // will only see deployed updates on subsequent visits to a page, after all the 7 | // existing tabs open on the page have been closed, since previously cached 8 | // resources are updated in the background. 9 | 10 | // To learn more about the benefits of this model and instructions on how to 11 | // opt-in, read http://bit.ly/CRA-PWA 12 | 13 | const isLocalhost = Boolean( 14 | window.location.hostname === 'localhost' || 15 | // [::1] is the IPv6 localhost address. 16 | window.location.hostname === '[::1]' || 17 | // 127.0.0.1/8 is considered localhost for IPv4. 18 | window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/) 19 | ) 20 | 21 | export function register(config) { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href) 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374 29 | return 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` 34 | 35 | if (isLocalhost) { 36 | // This is running on localhost. Let's check if a service worker still exists or not. 37 | checkValidServiceWorker(swUrl, config) 38 | 39 | // Add some additional logging to localhost, pointing developers to the 40 | // service worker/PWA documentation. 41 | navigator.serviceWorker.ready.then(() => { 42 | console.log( 43 | 'This web app is being served cache-first by a service ' + 44 | 'worker. To learn more, visit http://bit.ly/CRA-PWA' 45 | ) 46 | }) 47 | } else { 48 | // Is not localhost. Just register service worker 49 | registerValidSW(swUrl, config) 50 | } 51 | }) 52 | } 53 | } 54 | 55 | function registerValidSW(swUrl, config) { 56 | navigator.serviceWorker 57 | .register(swUrl) 58 | .then(registration => { 59 | registration.onupdatefound = () => { 60 | const installingWorker = registration.installing 61 | if (installingWorker == null) { 62 | return 63 | } 64 | installingWorker.onstatechange = () => { 65 | if (installingWorker.state === 'installed') { 66 | if (navigator.serviceWorker.controller) { 67 | // At this point, the updated precached content has been fetched, 68 | // but the previous service worker will still serve the older 69 | // content until all client tabs are closed. 70 | console.log( 71 | 'New content is available and will be used when all ' + 72 | 'tabs for this page are closed. See http://bit.ly/CRA-PWA.' 73 | ) 74 | 75 | // Execute callback 76 | if (config && config.onUpdate) { 77 | config.onUpdate(registration) 78 | } 79 | } else { 80 | // At this point, everything has been precached. 81 | // It's the perfect time to display a 82 | // "Content is cached for offline use." message. 83 | console.log('Content is cached for offline use.') 84 | 85 | // Execute callback 86 | if (config && config.onSuccess) { 87 | config.onSuccess(registration) 88 | } 89 | } 90 | } 91 | } 92 | } 93 | }) 94 | .catch(error => { 95 | console.error('Error during service worker registration:', error) 96 | }) 97 | } 98 | 99 | function checkValidServiceWorker(swUrl, config) { 100 | // Check if the service worker can be found. If it can't reload the page. 101 | fetch(swUrl) 102 | .then(response => { 103 | // Ensure service worker exists, and that we really are getting a JS file. 104 | const contentType = response.headers.get('content-type') 105 | if ( 106 | response.status === 404 || 107 | (contentType != null && contentType.indexOf('javascript') === -1) 108 | ) { 109 | // No service worker found. Probably a different app. Reload the page. 110 | navigator.serviceWorker.ready.then(registration => { 111 | registration.unregister().then(() => { 112 | window.location.reload() 113 | }) 114 | }) 115 | } else { 116 | // Service worker found. Proceed as normal. 117 | registerValidSW(swUrl, config) 118 | } 119 | }) 120 | .catch(() => { 121 | console.log('No internet connection found. App is running in offline mode.') 122 | }) 123 | } 124 | 125 | export function unregister() { 126 | if ('serviceWorker' in navigator) { 127 | navigator.serviceWorker.ready.then(registration => { 128 | registration.unregister() 129 | }) 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /src/util.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | const validateProjectName = require('validate-npm-package-name') 3 | const chalk = require('chalk') 4 | const { execSync } = require('child_process') 5 | 6 | function printValidationResults (results) { 7 | if (!Array.isArray(results)) return 8 | results.forEach(error => console.error(chalk.red(` * ${error}`))) 9 | } 10 | 11 | function checkAppName (programName, appName) { 12 | if (typeof appName === 'undefined') { 13 | console.error(`Please specify the project directory: 14 | ${chalk.cyan(programName)} ${chalk.green('')} 15 | 16 | For example: 17 | ${chalk.cyan(programName)} ${chalk.green('my-node-app')} 18 | 19 | Run ${chalk.cyan(`${programName} --help`)} to see all options.`) 20 | process.exit(1) 21 | } 22 | 23 | const validationResult = validateProjectName(appName) 24 | if (!validationResult.validForNewPackages) { 25 | console.error( 26 | `Could not create a project called ${chalk.red( 27 | `"${appName}"` 28 | )} because of npm naming restrictions:` 29 | ) 30 | printValidationResults(validationResult.errors) 31 | printValidationResults(validationResult.warnings) 32 | process.exit(1) 33 | } 34 | } 35 | 36 | async function shouldUseYarn () { 37 | try { 38 | await execSync('yarnpkg --version', { stdio: 'ignore' }) 39 | return true 40 | } catch (e) { 41 | return false 42 | } 43 | } 44 | 45 | module.exports = { checkAppName, shouldUseYarn } 46 | -------------------------------------------------------------------------------- /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", "@babel/code-frame@^7.12.13": 6 | version "7.12.13" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" 8 | integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== 9 | dependencies: 10 | "@babel/highlight" "^7.12.13" 11 | 12 | "@babel/generator@^7.13.9": 13 | version "7.13.16" 14 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" 15 | integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== 16 | dependencies: 17 | "@babel/types" "^7.13.16" 18 | jsesc "^2.5.1" 19 | source-map "^0.5.0" 20 | 21 | "@babel/helper-function-name@^7.12.13": 22 | version "7.12.13" 23 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" 24 | integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== 25 | dependencies: 26 | "@babel/helper-get-function-arity" "^7.12.13" 27 | "@babel/template" "^7.12.13" 28 | "@babel/types" "^7.12.13" 29 | 30 | "@babel/helper-get-function-arity@^7.12.13": 31 | version "7.12.13" 32 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" 33 | integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== 34 | dependencies: 35 | "@babel/types" "^7.12.13" 36 | 37 | "@babel/helper-split-export-declaration@^7.12.13": 38 | version "7.12.13" 39 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" 40 | integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== 41 | dependencies: 42 | "@babel/types" "^7.12.13" 43 | 44 | "@babel/helper-validator-identifier@^7.12.11": 45 | version "7.12.11" 46 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" 47 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 48 | 49 | "@babel/highlight@^7.12.13": 50 | version "7.13.10" 51 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" 52 | integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== 53 | dependencies: 54 | "@babel/helper-validator-identifier" "^7.12.11" 55 | chalk "^2.0.0" 56 | js-tokens "^4.0.0" 57 | 58 | "@babel/parser@^7.12.13", "@babel/parser@^7.13.15", "@babel/parser@^7.7.0": 59 | version "7.13.16" 60 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" 61 | integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== 62 | 63 | "@babel/runtime-corejs3@^7.10.2": 64 | version "7.13.16" 65 | resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.13.16.tgz#1bd4bf907be276cd01b5cfd8dd808cfc9c202c53" 66 | integrity sha512-HJq7yXmBSAGLl/4BSO25vjWnrhzKHYcB6doNbO+FjYQz6C5lgYsmJF1U8ziDP8/RBqIhNAyU7SjRip+flbjV3g== 67 | dependencies: 68 | core-js-pure "^3.0.0" 69 | regenerator-runtime "^0.13.4" 70 | 71 | "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2": 72 | version "7.13.16" 73 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.16.tgz#673e7b84c1f6287d96d483fa65cd3db792d53e22" 74 | integrity sha512-7VsWJsI5USRhBLE/3of+VU2DDNWtYHQlq2IHu2iL15+Yx4qVqP8KllR6JMHQlTKWRyDk9Tw6unkqSusaHXt//A== 75 | dependencies: 76 | regenerator-runtime "^0.13.4" 77 | 78 | "@babel/template@^7.12.13": 79 | version "7.12.13" 80 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" 81 | integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== 82 | dependencies: 83 | "@babel/code-frame" "^7.12.13" 84 | "@babel/parser" "^7.12.13" 85 | "@babel/types" "^7.12.13" 86 | 87 | "@babel/traverse@^7.7.0": 88 | version "7.13.15" 89 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7" 90 | integrity sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ== 91 | dependencies: 92 | "@babel/code-frame" "^7.12.13" 93 | "@babel/generator" "^7.13.9" 94 | "@babel/helper-function-name" "^7.12.13" 95 | "@babel/helper-split-export-declaration" "^7.12.13" 96 | "@babel/parser" "^7.13.15" 97 | "@babel/types" "^7.13.14" 98 | debug "^4.1.0" 99 | globals "^11.1.0" 100 | 101 | "@babel/types@^7.12.13", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.7.0": 102 | version "7.13.16" 103 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.16.tgz#916120b858aa5655cfba84bd0f6021ff5bdb4e65" 104 | integrity sha512-7enM8Wxhrl1hB1+k6+xO6RmxpNkaveRWkdpyii8DkrLWRgr0l3x29/SEuhTIkP+ynHsU/Hpjn8Evd/axv/ll6Q== 105 | dependencies: 106 | "@babel/helper-validator-identifier" "^7.12.11" 107 | to-fast-properties "^2.0.0" 108 | 109 | "@types/json5@^0.0.29": 110 | version "0.0.29" 111 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 112 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 113 | 114 | acorn-jsx@^5.0.0: 115 | version "5.3.1" 116 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" 117 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== 118 | 119 | acorn@^6.0.7: 120 | version "6.4.2" 121 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" 122 | integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== 123 | 124 | ajv@^6.10.2, ajv@^6.9.1: 125 | version "6.12.6" 126 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 127 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 128 | dependencies: 129 | fast-deep-equal "^3.1.1" 130 | fast-json-stable-stringify "^2.0.0" 131 | json-schema-traverse "^0.4.1" 132 | uri-js "^4.2.2" 133 | 134 | ansi-escapes@^3.2.0: 135 | version "3.2.0" 136 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 137 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 138 | 139 | ansi-regex@^2.0.0: 140 | version "2.1.1" 141 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 142 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 143 | 144 | ansi-regex@^3.0.0: 145 | version "3.0.0" 146 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 147 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 148 | 149 | ansi-regex@^4.1.0: 150 | version "4.1.0" 151 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 152 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 153 | 154 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 155 | version "3.2.1" 156 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 157 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 158 | dependencies: 159 | color-convert "^1.9.0" 160 | 161 | argparse@^1.0.7: 162 | version "1.0.10" 163 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 164 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 165 | dependencies: 166 | sprintf-js "~1.0.2" 167 | 168 | aria-query@^4.2.2: 169 | version "4.2.2" 170 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" 171 | integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== 172 | dependencies: 173 | "@babel/runtime" "^7.10.2" 174 | "@babel/runtime-corejs3" "^7.10.2" 175 | 176 | array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: 177 | version "3.1.3" 178 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" 179 | integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== 180 | dependencies: 181 | call-bind "^1.0.2" 182 | define-properties "^1.1.3" 183 | es-abstract "^1.18.0-next.2" 184 | get-intrinsic "^1.1.1" 185 | is-string "^1.0.5" 186 | 187 | array.prototype.flat@^1.2.3: 188 | version "1.2.4" 189 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" 190 | integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== 191 | dependencies: 192 | call-bind "^1.0.0" 193 | define-properties "^1.1.3" 194 | es-abstract "^1.18.0-next.1" 195 | 196 | array.prototype.flatmap@^1.2.4: 197 | version "1.2.4" 198 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" 199 | integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== 200 | dependencies: 201 | call-bind "^1.0.0" 202 | define-properties "^1.1.3" 203 | es-abstract "^1.18.0-next.1" 204 | function-bind "^1.1.1" 205 | 206 | ast-types-flow@^0.0.7: 207 | version "0.0.7" 208 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" 209 | integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= 210 | 211 | astral-regex@^1.0.0: 212 | version "1.0.0" 213 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 214 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 215 | 216 | axe-core@^4.0.2: 217 | version "4.1.4" 218 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.4.tgz#f19cd99a84ee32a318b9c5b5bb8ed373ad94f143" 219 | integrity sha512-Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig== 220 | 221 | axobject-query@^2.2.0: 222 | version "2.2.0" 223 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" 224 | integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== 225 | 226 | babel-eslint@^10.1.0: 227 | version "10.1.0" 228 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" 229 | integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== 230 | dependencies: 231 | "@babel/code-frame" "^7.0.0" 232 | "@babel/parser" "^7.7.0" 233 | "@babel/traverse" "^7.7.0" 234 | "@babel/types" "^7.7.0" 235 | eslint-visitor-keys "^1.0.0" 236 | resolve "^1.12.0" 237 | 238 | balanced-match@^1.0.0: 239 | version "1.0.2" 240 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 241 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 242 | 243 | brace-expansion@^1.1.7: 244 | version "1.1.11" 245 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 246 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 247 | dependencies: 248 | balanced-match "^1.0.0" 249 | concat-map "0.0.1" 250 | 251 | builtins@^1.0.3: 252 | version "1.0.3" 253 | resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" 254 | integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= 255 | 256 | call-bind@^1.0.0, call-bind@^1.0.2: 257 | version "1.0.2" 258 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 259 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 260 | dependencies: 261 | function-bind "^1.1.1" 262 | get-intrinsic "^1.0.2" 263 | 264 | callsites@^3.0.0: 265 | version "3.1.0" 266 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 267 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 268 | 269 | camelcase@^5.0.0: 270 | version "5.3.1" 271 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 272 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 273 | 274 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: 275 | version "2.4.2" 276 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 277 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 278 | dependencies: 279 | ansi-styles "^3.2.1" 280 | escape-string-regexp "^1.0.5" 281 | supports-color "^5.3.0" 282 | 283 | chardet@^0.7.0: 284 | version "0.7.0" 285 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 286 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 287 | 288 | cli-cursor@^2.1.0: 289 | version "2.1.0" 290 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 291 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= 292 | dependencies: 293 | restore-cursor "^2.0.0" 294 | 295 | cli-width@^2.0.0: 296 | version "2.2.1" 297 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" 298 | integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== 299 | 300 | cliui@^4.0.0: 301 | version "4.1.0" 302 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 303 | integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== 304 | dependencies: 305 | string-width "^2.1.1" 306 | strip-ansi "^4.0.0" 307 | wrap-ansi "^2.0.0" 308 | 309 | code-point-at@^1.0.0: 310 | version "1.1.0" 311 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 312 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 313 | 314 | color-convert@^1.9.0: 315 | version "1.9.3" 316 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 317 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 318 | dependencies: 319 | color-name "1.1.3" 320 | 321 | color-name@1.1.3: 322 | version "1.1.3" 323 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 324 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 325 | 326 | commander@^2.20.3: 327 | version "2.20.3" 328 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 329 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 330 | 331 | concat-map@0.0.1: 332 | version "0.0.1" 333 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 334 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 335 | 336 | concurrently@^4.1.2: 337 | version "4.1.2" 338 | resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-4.1.2.tgz#1a683b2b5c41e9ed324c9002b9f6e4c6e1f3b6d7" 339 | integrity sha512-Kim9SFrNr2jd8/0yNYqDTFALzUX1tvimmwFWxmp/D4mRI+kbqIIwE2RkBDrxS2ic25O1UgQMI5AtBqdtX3ynYg== 340 | dependencies: 341 | chalk "^2.4.2" 342 | date-fns "^1.30.1" 343 | lodash "^4.17.15" 344 | read-pkg "^4.0.1" 345 | rxjs "^6.5.2" 346 | spawn-command "^0.0.2-1" 347 | supports-color "^4.5.0" 348 | tree-kill "^1.2.1" 349 | yargs "^12.0.5" 350 | 351 | confusing-browser-globals@^1.0.7: 352 | version "1.0.10" 353 | resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" 354 | integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== 355 | 356 | contains-path@^0.1.0: 357 | version "0.1.0" 358 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 359 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 360 | 361 | core-js-pure@^3.0.0: 362 | version "3.10.2" 363 | resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.10.2.tgz#065304f8547bf42008d4528dfff973c38bd6a332" 364 | integrity sha512-uu18pVHQ21n4mzfuSlCXpucu5VKsck3j2m5fjrBOBqqdgWAxwdCgUuGWj6cDDPN1zLj/qtiqKvBMxWgDeeu49Q== 365 | 366 | cross-spawn@^6.0.0, cross-spawn@^6.0.5: 367 | version "6.0.5" 368 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 369 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 370 | dependencies: 371 | nice-try "^1.0.4" 372 | path-key "^2.0.1" 373 | semver "^5.5.0" 374 | shebang-command "^1.2.0" 375 | which "^1.2.9" 376 | 377 | damerau-levenshtein@^1.0.6: 378 | version "1.0.6" 379 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" 380 | integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== 381 | 382 | date-fns@^1.30.1: 383 | version "1.30.1" 384 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" 385 | integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== 386 | 387 | debug@^2.6.9: 388 | version "2.6.9" 389 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 390 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 391 | dependencies: 392 | ms "2.0.0" 393 | 394 | debug@^4.0.1, debug@^4.1.0: 395 | version "4.3.1" 396 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 397 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 398 | dependencies: 399 | ms "2.1.2" 400 | 401 | decamelize@^1.2.0: 402 | version "1.2.0" 403 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 404 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 405 | 406 | deep-is@~0.1.3: 407 | version "0.1.3" 408 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 409 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 410 | 411 | define-properties@^1.1.3: 412 | version "1.1.3" 413 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 414 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 415 | dependencies: 416 | object-keys "^1.0.12" 417 | 418 | doctrine@1.5.0: 419 | version "1.5.0" 420 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 421 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 422 | dependencies: 423 | esutils "^2.0.2" 424 | isarray "^1.0.0" 425 | 426 | doctrine@^2.1.0: 427 | version "2.1.0" 428 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 429 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 430 | dependencies: 431 | esutils "^2.0.2" 432 | 433 | doctrine@^3.0.0: 434 | version "3.0.0" 435 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 436 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 437 | dependencies: 438 | esutils "^2.0.2" 439 | 440 | emoji-regex@^7.0.1: 441 | version "7.0.3" 442 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 443 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 444 | 445 | emoji-regex@^9.0.0: 446 | version "9.2.2" 447 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 448 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 449 | 450 | end-of-stream@^1.1.0: 451 | version "1.4.4" 452 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 453 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 454 | dependencies: 455 | once "^1.4.0" 456 | 457 | error-ex@^1.2.0, error-ex@^1.3.1: 458 | version "1.3.2" 459 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 460 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 461 | dependencies: 462 | is-arrayish "^0.2.1" 463 | 464 | es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: 465 | version "1.18.0" 466 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" 467 | integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== 468 | dependencies: 469 | call-bind "^1.0.2" 470 | es-to-primitive "^1.2.1" 471 | function-bind "^1.1.1" 472 | get-intrinsic "^1.1.1" 473 | has "^1.0.3" 474 | has-symbols "^1.0.2" 475 | is-callable "^1.2.3" 476 | is-negative-zero "^2.0.1" 477 | is-regex "^1.1.2" 478 | is-string "^1.0.5" 479 | object-inspect "^1.9.0" 480 | object-keys "^1.1.1" 481 | object.assign "^4.1.2" 482 | string.prototype.trimend "^1.0.4" 483 | string.prototype.trimstart "^1.0.4" 484 | unbox-primitive "^1.0.0" 485 | 486 | es-to-primitive@^1.2.1: 487 | version "1.2.1" 488 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 489 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 490 | dependencies: 491 | is-callable "^1.1.4" 492 | is-date-object "^1.0.1" 493 | is-symbol "^1.0.2" 494 | 495 | escape-string-regexp@^1.0.5: 496 | version "1.0.5" 497 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 498 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 499 | 500 | eslint-config-react-app@^4.0.1: 501 | version "4.0.1" 502 | resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-4.0.1.tgz#23fd0fd7ea89442ef1e733f66a7207674b23c8db" 503 | integrity sha512-ZsaoXUIGsK8FCi/x4lT2bZR5mMkL/Kgj+Lnw690rbvvUr/uiwgFiD8FcfAhkCycm7Xte6O5lYz4EqMx2vX7jgw== 504 | dependencies: 505 | confusing-browser-globals "^1.0.7" 506 | 507 | eslint-config-standard@^12.0.0: 508 | version "12.0.0" 509 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" 510 | integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== 511 | 512 | eslint-import-resolver-node@^0.3.4: 513 | version "0.3.4" 514 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" 515 | integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== 516 | dependencies: 517 | debug "^2.6.9" 518 | resolve "^1.13.1" 519 | 520 | eslint-module-utils@^2.6.0: 521 | version "2.6.0" 522 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" 523 | integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== 524 | dependencies: 525 | debug "^2.6.9" 526 | pkg-dir "^2.0.0" 527 | 528 | eslint-plugin-es@^1.4.1: 529 | version "1.4.1" 530 | resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" 531 | integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== 532 | dependencies: 533 | eslint-utils "^1.4.2" 534 | regexpp "^2.0.1" 535 | 536 | eslint-plugin-flowtype@^3.13.0: 537 | version "3.13.0" 538 | resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c" 539 | integrity sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw== 540 | dependencies: 541 | lodash "^4.17.15" 542 | 543 | eslint-plugin-import@^2.22.1: 544 | version "2.22.1" 545 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" 546 | integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== 547 | dependencies: 548 | array-includes "^3.1.1" 549 | array.prototype.flat "^1.2.3" 550 | contains-path "^0.1.0" 551 | debug "^2.6.9" 552 | doctrine "1.5.0" 553 | eslint-import-resolver-node "^0.3.4" 554 | eslint-module-utils "^2.6.0" 555 | has "^1.0.3" 556 | minimatch "^3.0.4" 557 | object.values "^1.1.1" 558 | read-pkg-up "^2.0.0" 559 | resolve "^1.17.0" 560 | tsconfig-paths "^3.9.0" 561 | 562 | eslint-plugin-jsx-a11y@^6.4.1: 563 | version "6.4.1" 564 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" 565 | integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== 566 | dependencies: 567 | "@babel/runtime" "^7.11.2" 568 | aria-query "^4.2.2" 569 | array-includes "^3.1.1" 570 | ast-types-flow "^0.0.7" 571 | axe-core "^4.0.2" 572 | axobject-query "^2.2.0" 573 | damerau-levenshtein "^1.0.6" 574 | emoji-regex "^9.0.0" 575 | has "^1.0.3" 576 | jsx-ast-utils "^3.1.0" 577 | language-tags "^1.0.5" 578 | 579 | eslint-plugin-node@^9.2.0: 580 | version "9.2.0" 581 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-9.2.0.tgz#b1911f111002d366c5954a6d96d3cd5bf2a3036a" 582 | integrity sha512-2abNmzAH/JpxI4gEOwd6K8wZIodK3BmHbTxz4s79OIYwwIt2gkpEXlAouJXu4H1c9ySTnRso0tsuthSOZbUMlA== 583 | dependencies: 584 | eslint-plugin-es "^1.4.1" 585 | eslint-utils "^1.4.2" 586 | ignore "^5.1.1" 587 | minimatch "^3.0.4" 588 | resolve "^1.10.1" 589 | semver "^6.1.0" 590 | 591 | eslint-plugin-prettier@^3.4.0: 592 | version "3.4.0" 593 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" 594 | integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== 595 | dependencies: 596 | prettier-linter-helpers "^1.0.0" 597 | 598 | eslint-plugin-promise@^4.3.1: 599 | version "4.3.1" 600 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" 601 | integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== 602 | 603 | eslint-plugin-react-hooks@^1.7.0: 604 | version "1.7.0" 605 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" 606 | integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== 607 | 608 | eslint-plugin-react@^7.23.2: 609 | version "7.23.2" 610 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494" 611 | integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== 612 | dependencies: 613 | array-includes "^3.1.3" 614 | array.prototype.flatmap "^1.2.4" 615 | doctrine "^2.1.0" 616 | has "^1.0.3" 617 | jsx-ast-utils "^2.4.1 || ^3.0.0" 618 | minimatch "^3.0.4" 619 | object.entries "^1.1.3" 620 | object.fromentries "^2.0.4" 621 | object.values "^1.1.3" 622 | prop-types "^15.7.2" 623 | resolve "^2.0.0-next.3" 624 | string.prototype.matchall "^4.0.4" 625 | 626 | eslint-plugin-standard@^4.1.0: 627 | version "4.1.0" 628 | resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" 629 | integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== 630 | 631 | eslint-scope@^4.0.3: 632 | version "4.0.3" 633 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" 634 | integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== 635 | dependencies: 636 | esrecurse "^4.1.0" 637 | estraverse "^4.1.1" 638 | 639 | eslint-utils@^1.3.1, eslint-utils@^1.4.2: 640 | version "1.4.3" 641 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 642 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== 643 | dependencies: 644 | eslint-visitor-keys "^1.1.0" 645 | 646 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 647 | version "1.3.0" 648 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 649 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 650 | 651 | eslint@^5.16.0: 652 | version "5.16.0" 653 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" 654 | integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== 655 | dependencies: 656 | "@babel/code-frame" "^7.0.0" 657 | ajv "^6.9.1" 658 | chalk "^2.1.0" 659 | cross-spawn "^6.0.5" 660 | debug "^4.0.1" 661 | doctrine "^3.0.0" 662 | eslint-scope "^4.0.3" 663 | eslint-utils "^1.3.1" 664 | eslint-visitor-keys "^1.0.0" 665 | espree "^5.0.1" 666 | esquery "^1.0.1" 667 | esutils "^2.0.2" 668 | file-entry-cache "^5.0.1" 669 | functional-red-black-tree "^1.0.1" 670 | glob "^7.1.2" 671 | globals "^11.7.0" 672 | ignore "^4.0.6" 673 | import-fresh "^3.0.0" 674 | imurmurhash "^0.1.4" 675 | inquirer "^6.2.2" 676 | js-yaml "^3.13.0" 677 | json-stable-stringify-without-jsonify "^1.0.1" 678 | levn "^0.3.0" 679 | lodash "^4.17.11" 680 | minimatch "^3.0.4" 681 | mkdirp "^0.5.1" 682 | natural-compare "^1.4.0" 683 | optionator "^0.8.2" 684 | path-is-inside "^1.0.2" 685 | progress "^2.0.0" 686 | regexpp "^2.0.1" 687 | semver "^5.5.1" 688 | strip-ansi "^4.0.0" 689 | strip-json-comments "^2.0.1" 690 | table "^5.2.3" 691 | text-table "^0.2.0" 692 | 693 | espree@^5.0.1: 694 | version "5.0.1" 695 | resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" 696 | integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== 697 | dependencies: 698 | acorn "^6.0.7" 699 | acorn-jsx "^5.0.0" 700 | eslint-visitor-keys "^1.0.0" 701 | 702 | esprima@^4.0.0: 703 | version "4.0.1" 704 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 705 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 706 | 707 | esquery@^1.0.1: 708 | version "1.4.0" 709 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 710 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 711 | dependencies: 712 | estraverse "^5.1.0" 713 | 714 | esrecurse@^4.1.0: 715 | version "4.3.0" 716 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 717 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 718 | dependencies: 719 | estraverse "^5.2.0" 720 | 721 | estraverse@^4.1.1: 722 | version "4.3.0" 723 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 724 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 725 | 726 | estraverse@^5.1.0, estraverse@^5.2.0: 727 | version "5.2.0" 728 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 729 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 730 | 731 | esutils@^2.0.2: 732 | version "2.0.3" 733 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 734 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 735 | 736 | execa@^1.0.0: 737 | version "1.0.0" 738 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 739 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 740 | dependencies: 741 | cross-spawn "^6.0.0" 742 | get-stream "^4.0.0" 743 | is-stream "^1.1.0" 744 | npm-run-path "^2.0.0" 745 | p-finally "^1.0.0" 746 | signal-exit "^3.0.0" 747 | strip-eof "^1.0.0" 748 | 749 | external-editor@^3.0.3: 750 | version "3.1.0" 751 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 752 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 753 | dependencies: 754 | chardet "^0.7.0" 755 | iconv-lite "^0.4.24" 756 | tmp "^0.0.33" 757 | 758 | fast-deep-equal@^3.1.1: 759 | version "3.1.3" 760 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 761 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 762 | 763 | fast-diff@^1.1.2: 764 | version "1.2.0" 765 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 766 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 767 | 768 | fast-json-stable-stringify@^2.0.0: 769 | version "2.1.0" 770 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 771 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 772 | 773 | fast-levenshtein@~2.0.6: 774 | version "2.0.6" 775 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 776 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 777 | 778 | figures@^2.0.0: 779 | version "2.0.0" 780 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 781 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= 782 | dependencies: 783 | escape-string-regexp "^1.0.5" 784 | 785 | file-entry-cache@^5.0.1: 786 | version "5.0.1" 787 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 788 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 789 | dependencies: 790 | flat-cache "^2.0.1" 791 | 792 | find-up@^2.0.0, find-up@^2.1.0: 793 | version "2.1.0" 794 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 795 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 796 | dependencies: 797 | locate-path "^2.0.0" 798 | 799 | find-up@^3.0.0: 800 | version "3.0.0" 801 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 802 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 803 | dependencies: 804 | locate-path "^3.0.0" 805 | 806 | flat-cache@^2.0.1: 807 | version "2.0.1" 808 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 809 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 810 | dependencies: 811 | flatted "^2.0.0" 812 | rimraf "2.6.3" 813 | write "1.0.3" 814 | 815 | flatted@^2.0.0: 816 | version "2.0.2" 817 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 818 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 819 | 820 | fs-extra@^8.1.0: 821 | version "8.1.0" 822 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 823 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 824 | dependencies: 825 | graceful-fs "^4.2.0" 826 | jsonfile "^4.0.0" 827 | universalify "^0.1.0" 828 | 829 | fs.realpath@^1.0.0: 830 | version "1.0.0" 831 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 832 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 833 | 834 | function-bind@^1.1.1: 835 | version "1.1.1" 836 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 837 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 838 | 839 | functional-red-black-tree@^1.0.1: 840 | version "1.0.1" 841 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 842 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 843 | 844 | get-caller-file@^1.0.1: 845 | version "1.0.3" 846 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 847 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 848 | 849 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 850 | version "1.1.1" 851 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 852 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 853 | dependencies: 854 | function-bind "^1.1.1" 855 | has "^1.0.3" 856 | has-symbols "^1.0.1" 857 | 858 | get-stream@^4.0.0: 859 | version "4.1.0" 860 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 861 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 862 | dependencies: 863 | pump "^3.0.0" 864 | 865 | glob@^7.1.2, glob@^7.1.3: 866 | version "7.1.6" 867 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 868 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 869 | dependencies: 870 | fs.realpath "^1.0.0" 871 | inflight "^1.0.4" 872 | inherits "2" 873 | minimatch "^3.0.4" 874 | once "^1.3.0" 875 | path-is-absolute "^1.0.0" 876 | 877 | globals@^11.1.0, globals@^11.7.0: 878 | version "11.12.0" 879 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 880 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 881 | 882 | graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: 883 | version "4.2.6" 884 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 885 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 886 | 887 | has-bigints@^1.0.1: 888 | version "1.0.1" 889 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" 890 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 891 | 892 | has-flag@^2.0.0: 893 | version "2.0.0" 894 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 895 | integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= 896 | 897 | has-flag@^3.0.0: 898 | version "3.0.0" 899 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 900 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 901 | 902 | has-symbols@^1.0.1, has-symbols@^1.0.2: 903 | version "1.0.2" 904 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" 905 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== 906 | 907 | has@^1.0.3: 908 | version "1.0.3" 909 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 910 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 911 | dependencies: 912 | function-bind "^1.1.1" 913 | 914 | hosted-git-info@^2.1.4: 915 | version "2.8.9" 916 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 917 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 918 | 919 | iconv-lite@^0.4.24: 920 | version "0.4.24" 921 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 922 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 923 | dependencies: 924 | safer-buffer ">= 2.1.2 < 3" 925 | 926 | ignore@^4.0.6: 927 | version "4.0.6" 928 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 929 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 930 | 931 | ignore@^5.1.1: 932 | version "5.1.8" 933 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" 934 | integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== 935 | 936 | import-fresh@^3.0.0: 937 | version "3.3.0" 938 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 939 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 940 | dependencies: 941 | parent-module "^1.0.0" 942 | resolve-from "^4.0.0" 943 | 944 | imurmurhash@^0.1.4: 945 | version "0.1.4" 946 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 947 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 948 | 949 | inflight@^1.0.4: 950 | version "1.0.6" 951 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 952 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 953 | dependencies: 954 | once "^1.3.0" 955 | wrappy "1" 956 | 957 | inherits@2: 958 | version "2.0.4" 959 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 960 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 961 | 962 | inquirer@^6.2.2: 963 | version "6.5.2" 964 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" 965 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== 966 | dependencies: 967 | ansi-escapes "^3.2.0" 968 | chalk "^2.4.2" 969 | cli-cursor "^2.1.0" 970 | cli-width "^2.0.0" 971 | external-editor "^3.0.3" 972 | figures "^2.0.0" 973 | lodash "^4.17.12" 974 | mute-stream "0.0.7" 975 | run-async "^2.2.0" 976 | rxjs "^6.4.0" 977 | string-width "^2.1.0" 978 | strip-ansi "^5.1.0" 979 | through "^2.3.6" 980 | 981 | internal-slot@^1.0.3: 982 | version "1.0.3" 983 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" 984 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 985 | dependencies: 986 | get-intrinsic "^1.1.0" 987 | has "^1.0.3" 988 | side-channel "^1.0.4" 989 | 990 | invert-kv@^2.0.0: 991 | version "2.0.0" 992 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" 993 | integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== 994 | 995 | is-arrayish@^0.2.1: 996 | version "0.2.1" 997 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 998 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 999 | 1000 | is-bigint@^1.0.1: 1001 | version "1.0.1" 1002 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" 1003 | integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== 1004 | 1005 | is-boolean-object@^1.1.0: 1006 | version "1.1.0" 1007 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" 1008 | integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== 1009 | dependencies: 1010 | call-bind "^1.0.0" 1011 | 1012 | is-callable@^1.1.4, is-callable@^1.2.3: 1013 | version "1.2.3" 1014 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" 1015 | integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== 1016 | 1017 | is-core-module@^2.2.0: 1018 | version "2.2.0" 1019 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" 1020 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 1021 | dependencies: 1022 | has "^1.0.3" 1023 | 1024 | is-date-object@^1.0.1: 1025 | version "1.0.2" 1026 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 1027 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 1028 | 1029 | is-fullwidth-code-point@^1.0.0: 1030 | version "1.0.0" 1031 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1032 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 1033 | dependencies: 1034 | number-is-nan "^1.0.0" 1035 | 1036 | is-fullwidth-code-point@^2.0.0: 1037 | version "2.0.0" 1038 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1039 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1040 | 1041 | is-negative-zero@^2.0.1: 1042 | version "2.0.1" 1043 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 1044 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 1045 | 1046 | is-number-object@^1.0.4: 1047 | version "1.0.4" 1048 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" 1049 | integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== 1050 | 1051 | is-regex@^1.1.2: 1052 | version "1.1.2" 1053 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" 1054 | integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== 1055 | dependencies: 1056 | call-bind "^1.0.2" 1057 | has-symbols "^1.0.1" 1058 | 1059 | is-stream@^1.1.0: 1060 | version "1.1.0" 1061 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1062 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 1063 | 1064 | is-string@^1.0.5: 1065 | version "1.0.5" 1066 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" 1067 | integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== 1068 | 1069 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1070 | version "1.0.3" 1071 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 1072 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 1073 | dependencies: 1074 | has-symbols "^1.0.1" 1075 | 1076 | isarray@^1.0.0: 1077 | version "1.0.0" 1078 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1079 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1080 | 1081 | isexe@^2.0.0: 1082 | version "2.0.0" 1083 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1084 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1085 | 1086 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1087 | version "4.0.0" 1088 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1089 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1090 | 1091 | js-yaml@^3.13.0: 1092 | version "3.14.1" 1093 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1094 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1095 | dependencies: 1096 | argparse "^1.0.7" 1097 | esprima "^4.0.0" 1098 | 1099 | jsesc@^2.5.1: 1100 | version "2.5.2" 1101 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1102 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1103 | 1104 | json-parse-better-errors@^1.0.1: 1105 | version "1.0.2" 1106 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1107 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1108 | 1109 | json-schema-traverse@^0.4.1: 1110 | version "0.4.1" 1111 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1112 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1113 | 1114 | json-stable-stringify-without-jsonify@^1.0.1: 1115 | version "1.0.1" 1116 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1117 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1118 | 1119 | json5@^1.0.1: 1120 | version "1.0.1" 1121 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 1122 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 1123 | dependencies: 1124 | minimist "^1.2.0" 1125 | 1126 | jsonfile@^4.0.0: 1127 | version "4.0.0" 1128 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1129 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= 1130 | optionalDependencies: 1131 | graceful-fs "^4.1.6" 1132 | 1133 | "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: 1134 | version "3.2.0" 1135 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" 1136 | integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== 1137 | dependencies: 1138 | array-includes "^3.1.2" 1139 | object.assign "^4.1.2" 1140 | 1141 | language-subtag-registry@~0.3.2: 1142 | version "0.3.21" 1143 | resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" 1144 | integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== 1145 | 1146 | language-tags@^1.0.5: 1147 | version "1.0.5" 1148 | resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" 1149 | integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= 1150 | dependencies: 1151 | language-subtag-registry "~0.3.2" 1152 | 1153 | lcid@^2.0.0: 1154 | version "2.0.0" 1155 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" 1156 | integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== 1157 | dependencies: 1158 | invert-kv "^2.0.0" 1159 | 1160 | levn@^0.3.0, levn@~0.3.0: 1161 | version "0.3.0" 1162 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1163 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 1164 | dependencies: 1165 | prelude-ls "~1.1.2" 1166 | type-check "~0.3.2" 1167 | 1168 | load-json-file@^2.0.0: 1169 | version "2.0.0" 1170 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1171 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 1172 | dependencies: 1173 | graceful-fs "^4.1.2" 1174 | parse-json "^2.2.0" 1175 | pify "^2.0.0" 1176 | strip-bom "^3.0.0" 1177 | 1178 | locate-path@^2.0.0: 1179 | version "2.0.0" 1180 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1181 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 1182 | dependencies: 1183 | p-locate "^2.0.0" 1184 | path-exists "^3.0.0" 1185 | 1186 | locate-path@^3.0.0: 1187 | version "3.0.0" 1188 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1189 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1190 | dependencies: 1191 | p-locate "^3.0.0" 1192 | path-exists "^3.0.0" 1193 | 1194 | lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15: 1195 | version "4.17.21" 1196 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1197 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1198 | 1199 | loose-envify@^1.1.0, loose-envify@^1.4.0: 1200 | version "1.4.0" 1201 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1202 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1203 | dependencies: 1204 | js-tokens "^3.0.0 || ^4.0.0" 1205 | 1206 | map-age-cleaner@^0.1.1: 1207 | version "0.1.3" 1208 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" 1209 | integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== 1210 | dependencies: 1211 | p-defer "^1.0.0" 1212 | 1213 | mem@^4.0.0: 1214 | version "4.3.0" 1215 | resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" 1216 | integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== 1217 | dependencies: 1218 | map-age-cleaner "^0.1.1" 1219 | mimic-fn "^2.0.0" 1220 | p-is-promise "^2.0.0" 1221 | 1222 | mimic-fn@^1.0.0: 1223 | version "1.2.0" 1224 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1225 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 1226 | 1227 | mimic-fn@^2.0.0: 1228 | version "2.1.0" 1229 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1230 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1231 | 1232 | minimatch@^3.0.4: 1233 | version "3.0.4" 1234 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1235 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1236 | dependencies: 1237 | brace-expansion "^1.1.7" 1238 | 1239 | minimist@^1.2.0, minimist@^1.2.5: 1240 | version "1.2.5" 1241 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1242 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1243 | 1244 | mkdirp@^0.5.1: 1245 | version "0.5.5" 1246 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 1247 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 1248 | dependencies: 1249 | minimist "^1.2.5" 1250 | 1251 | ms@2.0.0: 1252 | version "2.0.0" 1253 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1254 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1255 | 1256 | ms@2.1.2: 1257 | version "2.1.2" 1258 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1259 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1260 | 1261 | mute-stream@0.0.7: 1262 | version "0.0.7" 1263 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1264 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= 1265 | 1266 | natural-compare@^1.4.0: 1267 | version "1.4.0" 1268 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1269 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1270 | 1271 | nice-try@^1.0.4: 1272 | version "1.0.5" 1273 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1274 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1275 | 1276 | normalize-package-data@^2.3.2: 1277 | version "2.5.0" 1278 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1279 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1280 | dependencies: 1281 | hosted-git-info "^2.1.4" 1282 | resolve "^1.10.0" 1283 | semver "2 || 3 || 4 || 5" 1284 | validate-npm-package-license "^3.0.1" 1285 | 1286 | npm-run-path@^2.0.0: 1287 | version "2.0.2" 1288 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1289 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 1290 | dependencies: 1291 | path-key "^2.0.0" 1292 | 1293 | number-is-nan@^1.0.0: 1294 | version "1.0.1" 1295 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1296 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1297 | 1298 | object-assign@^4.1.1: 1299 | version "4.1.1" 1300 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1301 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1302 | 1303 | object-inspect@^1.9.0: 1304 | version "1.10.2" 1305 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" 1306 | integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA== 1307 | 1308 | object-keys@^1.0.12, object-keys@^1.1.1: 1309 | version "1.1.1" 1310 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1311 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1312 | 1313 | object.assign@^4.1.2: 1314 | version "4.1.2" 1315 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1316 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1317 | dependencies: 1318 | call-bind "^1.0.0" 1319 | define-properties "^1.1.3" 1320 | has-symbols "^1.0.1" 1321 | object-keys "^1.1.1" 1322 | 1323 | object.entries@^1.1.3: 1324 | version "1.1.3" 1325 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" 1326 | integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== 1327 | dependencies: 1328 | call-bind "^1.0.0" 1329 | define-properties "^1.1.3" 1330 | es-abstract "^1.18.0-next.1" 1331 | has "^1.0.3" 1332 | 1333 | object.fromentries@^2.0.4: 1334 | version "2.0.4" 1335 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" 1336 | integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== 1337 | dependencies: 1338 | call-bind "^1.0.2" 1339 | define-properties "^1.1.3" 1340 | es-abstract "^1.18.0-next.2" 1341 | has "^1.0.3" 1342 | 1343 | object.values@^1.1.1, object.values@^1.1.3: 1344 | version "1.1.3" 1345 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" 1346 | integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== 1347 | dependencies: 1348 | call-bind "^1.0.2" 1349 | define-properties "^1.1.3" 1350 | es-abstract "^1.18.0-next.2" 1351 | has "^1.0.3" 1352 | 1353 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 1354 | version "1.4.0" 1355 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1356 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1357 | dependencies: 1358 | wrappy "1" 1359 | 1360 | onetime@^2.0.0: 1361 | version "2.0.1" 1362 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1363 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= 1364 | dependencies: 1365 | mimic-fn "^1.0.0" 1366 | 1367 | optionator@^0.8.2: 1368 | version "0.8.3" 1369 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 1370 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 1371 | dependencies: 1372 | deep-is "~0.1.3" 1373 | fast-levenshtein "~2.0.6" 1374 | levn "~0.3.0" 1375 | prelude-ls "~1.1.2" 1376 | type-check "~0.3.2" 1377 | word-wrap "~1.2.3" 1378 | 1379 | os-locale@^3.0.0: 1380 | version "3.1.0" 1381 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" 1382 | integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== 1383 | dependencies: 1384 | execa "^1.0.0" 1385 | lcid "^2.0.0" 1386 | mem "^4.0.0" 1387 | 1388 | os-tmpdir@~1.0.2: 1389 | version "1.0.2" 1390 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1391 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 1392 | 1393 | p-defer@^1.0.0: 1394 | version "1.0.0" 1395 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 1396 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= 1397 | 1398 | p-finally@^1.0.0: 1399 | version "1.0.0" 1400 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1401 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1402 | 1403 | p-is-promise@^2.0.0: 1404 | version "2.1.0" 1405 | resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" 1406 | integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== 1407 | 1408 | p-limit@^1.1.0: 1409 | version "1.3.0" 1410 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1411 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1412 | dependencies: 1413 | p-try "^1.0.0" 1414 | 1415 | p-limit@^2.0.0: 1416 | version "2.3.0" 1417 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1418 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1419 | dependencies: 1420 | p-try "^2.0.0" 1421 | 1422 | p-locate@^2.0.0: 1423 | version "2.0.0" 1424 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1425 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1426 | dependencies: 1427 | p-limit "^1.1.0" 1428 | 1429 | p-locate@^3.0.0: 1430 | version "3.0.0" 1431 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1432 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1433 | dependencies: 1434 | p-limit "^2.0.0" 1435 | 1436 | p-try@^1.0.0: 1437 | version "1.0.0" 1438 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1439 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1440 | 1441 | p-try@^2.0.0: 1442 | version "2.2.0" 1443 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1444 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1445 | 1446 | parent-module@^1.0.0: 1447 | version "1.0.1" 1448 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1449 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1450 | dependencies: 1451 | callsites "^3.0.0" 1452 | 1453 | parse-json@^2.2.0: 1454 | version "2.2.0" 1455 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1456 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 1457 | dependencies: 1458 | error-ex "^1.2.0" 1459 | 1460 | parse-json@^4.0.0: 1461 | version "4.0.0" 1462 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1463 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 1464 | dependencies: 1465 | error-ex "^1.3.1" 1466 | json-parse-better-errors "^1.0.1" 1467 | 1468 | path-exists@^3.0.0: 1469 | version "3.0.0" 1470 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1471 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1472 | 1473 | path-is-absolute@^1.0.0: 1474 | version "1.0.1" 1475 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1476 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1477 | 1478 | path-is-inside@^1.0.2: 1479 | version "1.0.2" 1480 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1481 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 1482 | 1483 | path-key@^2.0.0, path-key@^2.0.1: 1484 | version "2.0.1" 1485 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1486 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1487 | 1488 | path-parse@^1.0.6: 1489 | version "1.0.6" 1490 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1491 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1492 | 1493 | path-type@^2.0.0: 1494 | version "2.0.0" 1495 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 1496 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 1497 | dependencies: 1498 | pify "^2.0.0" 1499 | 1500 | pify@^2.0.0: 1501 | version "2.3.0" 1502 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1503 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 1504 | 1505 | pify@^3.0.0: 1506 | version "3.0.0" 1507 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1508 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 1509 | 1510 | pkg-dir@^2.0.0: 1511 | version "2.0.0" 1512 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 1513 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 1514 | dependencies: 1515 | find-up "^2.1.0" 1516 | 1517 | prelude-ls@~1.1.2: 1518 | version "1.1.2" 1519 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1520 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 1521 | 1522 | prettier-linter-helpers@^1.0.0: 1523 | version "1.0.0" 1524 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" 1525 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== 1526 | dependencies: 1527 | fast-diff "^1.1.2" 1528 | 1529 | prettier@^1.19.1: 1530 | version "1.19.1" 1531 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" 1532 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 1533 | 1534 | progress@^2.0.0: 1535 | version "2.0.3" 1536 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1537 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1538 | 1539 | prop-types@^15.6.2, prop-types@^15.7.2: 1540 | version "15.7.2" 1541 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 1542 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 1543 | dependencies: 1544 | loose-envify "^1.4.0" 1545 | object-assign "^4.1.1" 1546 | react-is "^16.8.1" 1547 | 1548 | pump@^3.0.0: 1549 | version "3.0.0" 1550 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1551 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1552 | dependencies: 1553 | end-of-stream "^1.1.0" 1554 | once "^1.3.1" 1555 | 1556 | punycode@^2.1.0: 1557 | version "2.1.1" 1558 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1559 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1560 | 1561 | react-is@^16.8.1: 1562 | version "16.13.1" 1563 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1564 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1565 | 1566 | react@^16.14.0: 1567 | version "16.14.0" 1568 | resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" 1569 | integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== 1570 | dependencies: 1571 | loose-envify "^1.1.0" 1572 | object-assign "^4.1.1" 1573 | prop-types "^15.6.2" 1574 | 1575 | read-pkg-up@^2.0.0: 1576 | version "2.0.0" 1577 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 1578 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 1579 | dependencies: 1580 | find-up "^2.0.0" 1581 | read-pkg "^2.0.0" 1582 | 1583 | read-pkg@^2.0.0: 1584 | version "2.0.0" 1585 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1586 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 1587 | dependencies: 1588 | load-json-file "^2.0.0" 1589 | normalize-package-data "^2.3.2" 1590 | path-type "^2.0.0" 1591 | 1592 | read-pkg@^4.0.1: 1593 | version "4.0.1" 1594 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" 1595 | integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= 1596 | dependencies: 1597 | normalize-package-data "^2.3.2" 1598 | parse-json "^4.0.0" 1599 | pify "^3.0.0" 1600 | 1601 | regenerator-runtime@^0.13.4: 1602 | version "0.13.7" 1603 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" 1604 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 1605 | 1606 | regexp.prototype.flags@^1.3.1: 1607 | version "1.3.1" 1608 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" 1609 | integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== 1610 | dependencies: 1611 | call-bind "^1.0.2" 1612 | define-properties "^1.1.3" 1613 | 1614 | regexpp@^2.0.1: 1615 | version "2.0.1" 1616 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 1617 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 1618 | 1619 | require-directory@^2.1.1: 1620 | version "2.1.1" 1621 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1622 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1623 | 1624 | require-main-filename@^1.0.1: 1625 | version "1.0.1" 1626 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 1627 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 1628 | 1629 | resolve-from@^4.0.0: 1630 | version "4.0.0" 1631 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1632 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1633 | 1634 | resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0: 1635 | version "1.20.0" 1636 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1637 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1638 | dependencies: 1639 | is-core-module "^2.2.0" 1640 | path-parse "^1.0.6" 1641 | 1642 | resolve@^2.0.0-next.3: 1643 | version "2.0.0-next.3" 1644 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" 1645 | integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== 1646 | dependencies: 1647 | is-core-module "^2.2.0" 1648 | path-parse "^1.0.6" 1649 | 1650 | restore-cursor@^2.0.0: 1651 | version "2.0.0" 1652 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1653 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= 1654 | dependencies: 1655 | onetime "^2.0.0" 1656 | signal-exit "^3.0.2" 1657 | 1658 | rimraf@2.6.3: 1659 | version "2.6.3" 1660 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 1661 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 1662 | dependencies: 1663 | glob "^7.1.3" 1664 | 1665 | run-async@^2.2.0: 1666 | version "2.4.1" 1667 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 1668 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 1669 | 1670 | rxjs@^6.4.0, rxjs@^6.5.2: 1671 | version "6.6.7" 1672 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" 1673 | integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== 1674 | dependencies: 1675 | tslib "^1.9.0" 1676 | 1677 | "safer-buffer@>= 2.1.2 < 3": 1678 | version "2.1.2" 1679 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1680 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1681 | 1682 | "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1: 1683 | version "5.7.1" 1684 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1685 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1686 | 1687 | semver@^6.1.0, semver@^6.3.0: 1688 | version "6.3.0" 1689 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1690 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1691 | 1692 | set-blocking@^2.0.0: 1693 | version "2.0.0" 1694 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1695 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1696 | 1697 | shebang-command@^1.2.0: 1698 | version "1.2.0" 1699 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1700 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1701 | dependencies: 1702 | shebang-regex "^1.0.0" 1703 | 1704 | shebang-regex@^1.0.0: 1705 | version "1.0.0" 1706 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1707 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1708 | 1709 | side-channel@^1.0.4: 1710 | version "1.0.4" 1711 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1712 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1713 | dependencies: 1714 | call-bind "^1.0.0" 1715 | get-intrinsic "^1.0.2" 1716 | object-inspect "^1.9.0" 1717 | 1718 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1719 | version "3.0.3" 1720 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1721 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1722 | 1723 | slice-ansi@^2.1.0: 1724 | version "2.1.0" 1725 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 1726 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 1727 | dependencies: 1728 | ansi-styles "^3.2.0" 1729 | astral-regex "^1.0.0" 1730 | is-fullwidth-code-point "^2.0.0" 1731 | 1732 | source-map@^0.5.0: 1733 | version "0.5.7" 1734 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1735 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1736 | 1737 | spawn-command@^0.0.2-1: 1738 | version "0.0.2-1" 1739 | resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" 1740 | integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= 1741 | 1742 | spdx-correct@^3.0.0: 1743 | version "3.1.1" 1744 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1745 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1746 | dependencies: 1747 | spdx-expression-parse "^3.0.0" 1748 | spdx-license-ids "^3.0.0" 1749 | 1750 | spdx-exceptions@^2.1.0: 1751 | version "2.3.0" 1752 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1753 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1754 | 1755 | spdx-expression-parse@^3.0.0: 1756 | version "3.0.1" 1757 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1758 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1759 | dependencies: 1760 | spdx-exceptions "^2.1.0" 1761 | spdx-license-ids "^3.0.0" 1762 | 1763 | spdx-license-ids@^3.0.0: 1764 | version "3.0.7" 1765 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" 1766 | integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== 1767 | 1768 | sprintf-js@~1.0.2: 1769 | version "1.0.3" 1770 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1771 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1772 | 1773 | string-width@^1.0.1: 1774 | version "1.0.2" 1775 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1776 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 1777 | dependencies: 1778 | code-point-at "^1.0.0" 1779 | is-fullwidth-code-point "^1.0.0" 1780 | strip-ansi "^3.0.0" 1781 | 1782 | string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 1783 | version "2.1.1" 1784 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1785 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1786 | dependencies: 1787 | is-fullwidth-code-point "^2.0.0" 1788 | strip-ansi "^4.0.0" 1789 | 1790 | string-width@^3.0.0: 1791 | version "3.1.0" 1792 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1793 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1794 | dependencies: 1795 | emoji-regex "^7.0.1" 1796 | is-fullwidth-code-point "^2.0.0" 1797 | strip-ansi "^5.1.0" 1798 | 1799 | string.prototype.matchall@^4.0.4: 1800 | version "4.0.4" 1801 | resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" 1802 | integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== 1803 | dependencies: 1804 | call-bind "^1.0.2" 1805 | define-properties "^1.1.3" 1806 | es-abstract "^1.18.0-next.2" 1807 | has-symbols "^1.0.1" 1808 | internal-slot "^1.0.3" 1809 | regexp.prototype.flags "^1.3.1" 1810 | side-channel "^1.0.4" 1811 | 1812 | string.prototype.trimend@^1.0.4: 1813 | version "1.0.4" 1814 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 1815 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 1816 | dependencies: 1817 | call-bind "^1.0.2" 1818 | define-properties "^1.1.3" 1819 | 1820 | string.prototype.trimstart@^1.0.4: 1821 | version "1.0.4" 1822 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 1823 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 1824 | dependencies: 1825 | call-bind "^1.0.2" 1826 | define-properties "^1.1.3" 1827 | 1828 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1829 | version "3.0.1" 1830 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1831 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1832 | dependencies: 1833 | ansi-regex "^2.0.0" 1834 | 1835 | strip-ansi@^4.0.0: 1836 | version "4.0.0" 1837 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1838 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1839 | dependencies: 1840 | ansi-regex "^3.0.0" 1841 | 1842 | strip-ansi@^5.1.0: 1843 | version "5.2.0" 1844 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1845 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1846 | dependencies: 1847 | ansi-regex "^4.1.0" 1848 | 1849 | strip-bom@^3.0.0: 1850 | version "3.0.0" 1851 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1852 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1853 | 1854 | strip-eof@^1.0.0: 1855 | version "1.0.0" 1856 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1857 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 1858 | 1859 | strip-json-comments@^2.0.1: 1860 | version "2.0.1" 1861 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1862 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1863 | 1864 | supports-color@^4.5.0: 1865 | version "4.5.0" 1866 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 1867 | integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= 1868 | dependencies: 1869 | has-flag "^2.0.0" 1870 | 1871 | supports-color@^5.3.0: 1872 | version "5.5.0" 1873 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1874 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1875 | dependencies: 1876 | has-flag "^3.0.0" 1877 | 1878 | table@^5.2.3: 1879 | version "5.4.6" 1880 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1881 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 1882 | dependencies: 1883 | ajv "^6.10.2" 1884 | lodash "^4.17.14" 1885 | slice-ansi "^2.1.0" 1886 | string-width "^3.0.0" 1887 | 1888 | text-table@^0.2.0: 1889 | version "0.2.0" 1890 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1891 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1892 | 1893 | through@^2.3.6: 1894 | version "2.3.8" 1895 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1896 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1897 | 1898 | tmp@^0.0.33: 1899 | version "0.0.33" 1900 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1901 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 1902 | dependencies: 1903 | os-tmpdir "~1.0.2" 1904 | 1905 | to-fast-properties@^2.0.0: 1906 | version "2.0.0" 1907 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1908 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 1909 | 1910 | tree-kill@^1.2.1: 1911 | version "1.2.2" 1912 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1913 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1914 | 1915 | tsconfig-paths@^3.9.0: 1916 | version "3.9.0" 1917 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" 1918 | integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== 1919 | dependencies: 1920 | "@types/json5" "^0.0.29" 1921 | json5 "^1.0.1" 1922 | minimist "^1.2.0" 1923 | strip-bom "^3.0.0" 1924 | 1925 | tslib@^1.9.0: 1926 | version "1.14.1" 1927 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1928 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1929 | 1930 | type-check@~0.3.2: 1931 | version "0.3.2" 1932 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1933 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1934 | dependencies: 1935 | prelude-ls "~1.1.2" 1936 | 1937 | unbox-primitive@^1.0.0: 1938 | version "1.0.1" 1939 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 1940 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== 1941 | dependencies: 1942 | function-bind "^1.1.1" 1943 | has-bigints "^1.0.1" 1944 | has-symbols "^1.0.2" 1945 | which-boxed-primitive "^1.0.2" 1946 | 1947 | universalify@^0.1.0: 1948 | version "0.1.2" 1949 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1950 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1951 | 1952 | uri-js@^4.2.2: 1953 | version "4.4.1" 1954 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1955 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1956 | dependencies: 1957 | punycode "^2.1.0" 1958 | 1959 | validate-npm-package-license@^3.0.1: 1960 | version "3.0.4" 1961 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1962 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1963 | dependencies: 1964 | spdx-correct "^3.0.0" 1965 | spdx-expression-parse "^3.0.0" 1966 | 1967 | validate-npm-package-name@^3.0.0: 1968 | version "3.0.0" 1969 | resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" 1970 | integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= 1971 | dependencies: 1972 | builtins "^1.0.3" 1973 | 1974 | which-boxed-primitive@^1.0.2: 1975 | version "1.0.2" 1976 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 1977 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 1978 | dependencies: 1979 | is-bigint "^1.0.1" 1980 | is-boolean-object "^1.1.0" 1981 | is-number-object "^1.0.4" 1982 | is-string "^1.0.5" 1983 | is-symbol "^1.0.3" 1984 | 1985 | which-module@^2.0.0: 1986 | version "2.0.0" 1987 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1988 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 1989 | 1990 | which@^1.2.9: 1991 | version "1.3.1" 1992 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1993 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1994 | dependencies: 1995 | isexe "^2.0.0" 1996 | 1997 | word-wrap@~1.2.3: 1998 | version "1.2.3" 1999 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2000 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 2001 | 2002 | wrap-ansi@^2.0.0: 2003 | version "2.1.0" 2004 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 2005 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 2006 | dependencies: 2007 | string-width "^1.0.1" 2008 | strip-ansi "^3.0.1" 2009 | 2010 | wrappy@1: 2011 | version "1.0.2" 2012 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2013 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2014 | 2015 | write@1.0.3: 2016 | version "1.0.3" 2017 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 2018 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 2019 | dependencies: 2020 | mkdirp "^0.5.1" 2021 | 2022 | "y18n@^3.2.1 || ^4.0.0": 2023 | version "4.0.3" 2024 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" 2025 | integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== 2026 | 2027 | yargs-parser@^11.1.1: 2028 | version "11.1.1" 2029 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" 2030 | integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== 2031 | dependencies: 2032 | camelcase "^5.0.0" 2033 | decamelize "^1.2.0" 2034 | 2035 | yargs@^12.0.5: 2036 | version "12.0.5" 2037 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" 2038 | integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== 2039 | dependencies: 2040 | cliui "^4.0.0" 2041 | decamelize "^1.2.0" 2042 | find-up "^3.0.0" 2043 | get-caller-file "^1.0.1" 2044 | os-locale "^3.0.0" 2045 | require-directory "^2.1.1" 2046 | require-main-filename "^1.0.1" 2047 | set-blocking "^2.0.0" 2048 | string-width "^2.0.0" 2049 | which-module "^2.0.0" 2050 | y18n "^3.2.1 || ^4.0.0" 2051 | yargs-parser "^11.1.1" 2052 | --------------------------------------------------------------------------------