├── .npmrc ├── .gitattributes ├── .gitignore ├── template-web3-react-express-hardhat-ts ├── backend │ ├── README.md │ ├── tsconfig.json │ ├── package.json │ ├── src │ │ └── index.ts │ └── package-lock.json ├── .vercelignore ├── solidity │ ├── hardhat │ │ ├── .env.example │ │ ├── .gitignore │ │ ├── tsconfig.json │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── node.js.yml │ │ ├── scripts │ │ │ └── deploy.ts │ │ ├── contracts │ │ │ └── Counter.sol │ │ ├── hardhat.config.ts │ │ ├── test │ │ │ └── counter.ts │ │ ├── package.json │ │ └── README.md │ └── README.md ├── .gitignore ├── ui │ ├── src │ │ ├── vite-env.d.ts │ │ ├── App.css │ │ ├── App.tsx │ │ ├── main.tsx │ │ ├── index.css │ │ ├── favicon.svg │ │ ├── app │ │ │ └── Main │ │ │ │ ├── hooks.ts │ │ │ │ ├── connectors.ts │ │ │ │ └── Main.tsx │ │ └── logo.svg │ ├── .gitignore │ ├── README.md │ ├── tsconfig.json │ ├── vite.config.ts │ ├── index.html │ └── package.json ├── tools │ ├── browserified-libs │ │ ├── README.md │ │ ├── browserified-libs.js │ │ ├── package.json │ │ └── index.js │ └── yarn.lock ├── editorconfig ├── vercel.json └── README.md ├── docs ├── screenshot-01.png └── DEV.md ├── CHANGELOG.md ├── test.js ├── .editorconfig ├── TODO.md ├── .vscode ├── settings.json └── extensions.json ├── .github └── workflows │ └── main.yml ├── README.md ├── LICENSE ├── package.json ├── cli.js └── yarn.lock /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | testdir 3 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/backend/README.md: -------------------------------------------------------------------------------- 1 | # Backend 2 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/.vercelignore: -------------------------------------------------------------------------------- 1 | backend/src 2 | ui/src -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/.env.example: -------------------------------------------------------------------------------- 1 | INFURA_API_KEY= 2 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | dist 4 | 5 | .vercel 6 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /docs/screenshot-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coddx-hq/create-web3js-app/HEAD/docs/screenshot-01.png -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [0.2.5] - 2021-07-10 2 | - First public version. 3 | - Vite, Typescript, Web3, react, express, hardhat. 4 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/tools/browserified-libs/README.md: -------------------------------------------------------------------------------- 1 | # Build 2 | 3 | ``` 4 | npx browserify .\index.js > browserified-libs.js 5 | ``` 6 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/README.md: -------------------------------------------------------------------------------- 1 | # Web 2 | 3 | ## Scripts 4 | 5 | ``` 6 | $ yarn 7 | $ yarn dev 8 | $ yarn build 9 | ``` 10 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | cache/ 3 | build/ 4 | typechain/ 5 | artifacts/ 6 | coverage* 7 | .env 8 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/App.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 3 | padding: 20px; 4 | } 5 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/tools/browserified-libs/browserified-libs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coddx-hq/create-web3js-app/HEAD/template-web3-react-express-hardhat-ts/tools/browserified-libs/browserified-libs.js -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | import test from 'ava'; 2 | import execa from 'execa'; 3 | 4 | test('main', async (t) => { 5 | const { stdout } = await execa('./cli.js', ['testdir']); 6 | t.is(stdout.indexOf('Version') >= 0, true); 7 | }); 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.yml] 11 | indent_style = space 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | # Create Web3js App 2 | 3 | TODO List 4 | 5 | [TODO.md spec & Kanban Board](https://bit.ly/3fCwKfM) 6 | 7 | ### Todo 8 | 9 | - [ ] add CHANGELOG file 10 | 11 | ### In Progress 12 | 13 | 14 | ### Done ✓ 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/DEV.md: -------------------------------------------------------------------------------- 1 | # CLI Development 2 | 3 | ## Templates 4 | 5 | Current templates: 6 | - template-web3-react-express-hardhat-ts - default. See its README.md. 7 | 8 | ## Scripts 9 | 10 | ``` 11 | Run Dev 12 | $ node ./cli.js myapp 13 | 14 | Publish 15 | $ npm publish 16 | ``` 17 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | [*] 3 | charset = utf-8 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | insert_final_newline = true 8 | quote_type = single 9 | trim_trailing_whitespace = true 10 | [*.md] 11 | trim_trailing_whitespace = false 12 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | 3 | import Main from './app/Main/Main'; 4 | import './App.css'; 5 | 6 | function App() { 7 | return ( 8 |
9 |
10 |
11 | ); 12 | } 13 | 14 | export default App; 15 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import './index.css' 4 | import App from './App' 5 | 6 | ReactDOM.render( 7 | 8 | 9 | , 10 | document.getElementById('root') 11 | ) 12 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "strict": true, 6 | "esModuleInterop": true, 7 | "outDir": "dist", 8 | "resolveJsonModule": true 9 | }, 10 | "include": ["./scripts", "./test"], 11 | "files": ["./hardhat.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/tools/browserified-libs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tools", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1" 7 | }, 8 | "dependencies": { 9 | "buffer": "^6.0.3", 10 | "events": "^3.3.0", 11 | "process": "^0.11.10" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/README.md: -------------------------------------------------------------------------------- 1 | # Solidity - Smart Contracts 2 | 3 | ## Structure 4 | 5 | - /solidity/hardhat - from https://github.com/rhlsthrm/typescript-solidity-dev-starter-kit 6 | - This is for developing, testing, and deploying smart contracts using Hardhat. 7 | 8 | ## Scripts 9 | 10 | ``` 11 | $ cd ./hardhat 12 | $ yarn 13 | $ yarn compile 14 | $ yarn test 15 | $ yarn deploy 16 | ``` 17 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "search.exclude": { 3 | "**/node_modules": true, 4 | "dist/": true, 5 | "static/": true 6 | }, 7 | "files.exclude": { 8 | "**/node_modules": true, 9 | "npm-debug.log*": true, 10 | "dist/": true, 11 | "static/": true 12 | }, 13 | "editor.formatOnSave": true, 14 | "editor.defaultFormatter": "esbenp.prettier-vscode", 15 | "[json]": { 16 | "editor.formatOnSave": false 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | 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', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/backend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "esModuleInterop": true, 5 | "target": "es6", 6 | "noImplicitAny": true, 7 | "moduleResolution": "node", 8 | "sourceMap": true, 9 | "outDir": "build", 10 | "baseUrl": ".", 11 | "paths": { 12 | "*": [ 13 | "node_modules/*" 14 | ] 15 | } 16 | }, 17 | "include": [ 18 | "src/**/*" 19 | ] 20 | } -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/tools/browserified-libs/index.js: -------------------------------------------------------------------------------- 1 | const process = require('process/'); 2 | const { Buffer } = require('buffer'); 3 | const EventEmitter = require('events'); 4 | if (window) { 5 | const isLocalhost = window.location.host.indexOf('localhost') >= 0; 6 | if (!isLocalhost) { 7 | window.Buffer = Buffer; 8 | window.process = process; 9 | window.EventEmitter = EventEmitter; 10 | } 11 | } 12 | module.exports = { browser: true }; 13 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | // prettier-ignore 2 | { 3 | "recommendations": [ 4 | "waderyan.gitblame", 5 | "editorconfig.editorconfig", 6 | "donjayamanne.githistory", 7 | "esbenp.prettier-vscode", 8 | "eg2.vscode-npm-script", 9 | "ms-azuretools.vscode-docker", 10 | "redhat.vscode-yaml", 11 | "me-dutour-mathieu.vscode-github-actions", 12 | "coddx.coddx-alpha", 13 | "humao.rest-client" 14 | ], 15 | "unwantedRecommendations": [ 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | - push 4 | - pull_request 5 | jobs: 6 | test: 7 | name: Node.js ${{ matrix.node-version }} 8 | runs-on: ubuntu-latest 9 | strategy: 10 | fail-fast: false 11 | matrix: 12 | node-version: 13 | - 14 14 | - 12 15 | steps: 16 | - uses: actions/checkout@v2 17 | - uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - run: npm install 21 | - run: chmod +x cli.js 22 | - run: npm test 23 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 5 | "allowJs": false, 6 | "skipLibCheck": false, 7 | "esModuleInterop": false, 8 | "allowSyntheticDefaultImports": true, 9 | "strict": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "module": "ESNext", 12 | "moduleResolution": "Node", 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "noEmit": true, 16 | "jsx": "react" 17 | }, 18 | "include": ["./src"] 19 | } 20 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import reactRefresh from '@vitejs/plugin-react-refresh'; 3 | // import polyfillNode from 'rollup-plugin-polyfill-node'; // e.g. add 'Buffer' to browser env. 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [reactRefresh()], 8 | resolve: { 9 | alias: { 10 | process: 'process/browser', 11 | stream: 'stream-browserify', 12 | zlib: 'browserify-zlib', 13 | util: 'util' 14 | } 15 | }, 16 | build: { 17 | chunkSizeWarningLimit: 4000 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/backend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "build/index.js", 3 | "scripts": { 4 | "prebuild": "echo --- tslint -c tslint.json -p tsconfig.json --fix", 5 | "build": "rimraf build && tsc", 6 | "prestart": "npm run build", 7 | "start": "node .", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "devDependencies": { 11 | "@types/express": "^4.17.13", 12 | "@types/node": "^14.14.31", 13 | "rimraf": "^3.0.2", 14 | "typescript": "^4.3.5" 15 | }, 16 | "dependencies": { 17 | "compression": "^1.7.4", 18 | "express": "^4.17.1", 19 | "helmet": "^4.6.0" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Create Web3js App 2 | 3 | Command line to create a Web3 App. Features: 4 | - Frontend: React, Typescript, Web3-React, Metamask, Vitejs (dev mode < 1s). 5 | - Backend: NodeJS [vercel-express](https://github.com/ngduc/vercel-express) 6 | - Solidity: Smart contracts using Hardhat. 7 | - Deploy using Vercel with no cost. 8 | 9 | ## Usage 10 | 11 | ``` 12 | $ npx create-web3js-app appname 13 | ``` 14 | 15 | 16 | 17 | ## Contribution 18 | 19 | - If something doesn't work, please [file an issue](https://github.com/coddx-hq/create-web3js-app/issues). 20 | - All contributions are welcome! Please use Github Pull Request. See [TODO.md](TODO.md) 21 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "env": { 4 | }, 5 | "builds": [ 6 | { 7 | "src": "backend/build/index.js", 8 | "use": "@vercel/node", 9 | "config": { "includeFiles": ["backend/build/**"] } 10 | }, 11 | { 12 | "src": "ui/dist/**", 13 | "use": "@vercel/static", 14 | "config": { "includeFiles": ["ui/dist/**"] } 15 | } 16 | ], 17 | "routes": [ 18 | { 19 | "src": "/api/(.*)", 20 | "dest": "backend/build/index.js" 21 | }, 22 | { 23 | "src": "/", 24 | "dest": "ui/dist/index.html" 25 | }, 26 | { 27 | "src": "/(.+)", 28 | "dest": "ui/dist/$1" 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [12.x, 14.x] 20 | 21 | steps: 22 | - uses: actions/checkout@v2 23 | - name: Use Node.js ${{ matrix.node-version }} 24 | uses: actions/setup-node@v1 25 | with: 26 | node-version: ${{ matrix.node-version }} 27 | - run: npm install 28 | - run: npm run build 29 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/README.md: -------------------------------------------------------------------------------- 1 | # Web3-react-express-hardhat-ts 2 | 3 | Created by [create-web3js-app](https://github.com/coddx-hq/create-web3js-app) 4 | 5 | Features: 6 | - Frontend: React, Typescript, Web3-React, Metamask, Vitejs (dev mode < 1s). 7 | - Backend: NodeJS [vercel-express](https://github.com/ngduc/vercel-express) 8 | - Solidity: Smart contracts using Hardhat. 9 | - Deploy using Vercel with no cost. 10 | 11 | ## Requirements 12 | 13 | - NodeJS 14 | - Yarn ($ npm install yarn --global) 15 | 16 | ## Development 17 | 18 | ``` 19 | $ cd backend 20 | $ yarn 21 | $ yarn start (open http://localhost:3030) 22 | 23 | $ cd ui 24 | $ yarn 25 | $ yarn dev (open http://localhost:3000) 26 | ``` 27 | 28 | ## Build and Deploy 29 | 30 | ``` 31 | $ cd backend 32 | $ yarn build 33 | 34 | $ cd ui 35 | $ yarn build 36 | ``` 37 | 38 | Deploy using Vercel: 39 | ``` 40 | $ cd 41 | $ npx vercel 42 | ``` 43 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/scripts/deploy.ts: -------------------------------------------------------------------------------- 1 | import { ethers } from "hardhat"; 2 | 3 | async function main() { 4 | const factory = await ethers.getContractFactory("Counter"); 5 | 6 | // If we had constructor arguments, they would be passed into deploy() 7 | let contract = await factory.deploy(); 8 | 9 | console.log( 10 | `The address the Contract WILL have once mined: ${contract.address}` 11 | ); 12 | 13 | console.log( 14 | `The transaction that was sent to the network to deploy the Contract: ${ 15 | contract.deployTransaction.hash 16 | }` 17 | ); 18 | 19 | console.log( 20 | 'The contract is NOT deployed yet; we must wait until it is mined...' 21 | ); 22 | await contract.deployed(); 23 | console.log('Mined!'); 24 | } 25 | 26 | main() 27 | .then(() => process.exit(0)) 28 | .catch((error) => { 29 | console.error(error); 30 | process.exit(1); 31 | }); 32 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/backend/src/index.ts: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import { Request, Response } from 'express'; 3 | // import cors from "cors"; // for CORS setup, usage: app.use(cors()); 4 | 5 | const app = express(); 6 | const port = process.env.PORT || 3030; // default port to listen 7 | 8 | app.get('/api', (req: Request, res: Response) => { 9 | const randomId = `${Math.random()}`.slice(2); 10 | const path = `/api/item/${randomId}`; 11 | res.setHeader('Content-Type', 'text/html'); 12 | res.setHeader('Cache-Control', 's-max-age=1, stale-while-revalidate'); 13 | res.end(`Hello! Fetch one item: ${path}`); 14 | }); 15 | 16 | app.get('/api/item/:itemId', (req: Request, res: Response) => { 17 | const { itemId } = req.params; 18 | res.json({ itemId }); 19 | }); 20 | 21 | app.listen(port, () => { 22 | // tslint:disable-next-line:no-console 23 | console.log(`Server started at http://localhost:${port}`); 24 | }); 25 | 26 | module.exports = app; 27 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/contracts/Counter.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.7.6; 2 | 3 | import "hardhat/console.sol"; 4 | 5 | contract Counter { 6 | uint256 count = 0; 7 | 8 | event CountedTo(uint256 number); 9 | 10 | function getCount() public view returns (uint256) { 11 | return count; 12 | } 13 | 14 | function countUp() public returns (uint256) { 15 | console.log("countUp: count =", count); 16 | uint256 newCount = count + 1; 17 | require(newCount > count, "Uint256 overflow"); 18 | 19 | count = newCount; 20 | 21 | emit CountedTo(count); 22 | return count; 23 | } 24 | 25 | function countDown() public returns (uint256) { 26 | console.log("countDown: count =", count); 27 | uint256 newCount = count - 1; 28 | require(newCount < count, "Uint256 underflow"); 29 | 30 | count = newCount; 31 | 32 | emit CountedTo(count); 33 | return count; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 | 11 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Duc Nguyen, Coddx. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-web3js-app", 3 | "version": "0.2.5", 4 | "description": "create-web3js-app command-line tool.", 5 | "license": "MIT", 6 | "repository": "https://github.com/coddx-hq/create-web3js-app", 7 | "author": { 8 | "name": "Duc Nguyen", 9 | "url": "https://github.com/ngduc" 10 | }, 11 | "type": "module", 12 | "bin": { 13 | "create-web3js-app": "cli.js" 14 | }, 15 | "engines": { 16 | "node": ">=12" 17 | }, 18 | "scripts": { 19 | "test": "npx rimraf testdir && ava" 20 | }, 21 | "files": [ 22 | "cli.js", 23 | "/template-web3-react-express-hardhat-ts" 24 | ], 25 | "keywords": [ 26 | "create-web3js-app", 27 | "web3", 28 | "web3js", 29 | "boilerplate" 30 | ], 31 | "dependencies": { 32 | "meow": "^9.0.0", 33 | "rimraf": "^3.0.2" 34 | }, 35 | "devDependencies": { 36 | "ava": "^3.15.0", 37 | "execa": "^5.0.0" 38 | }, 39 | "prettier": { 40 | "tabWidth": 2, 41 | "printWidth": 120, 42 | "singleQuote": true, 43 | "trailingComma": "none", 44 | "parser": "typescript" 45 | }, 46 | "husky": { 47 | "hooks": { 48 | "pre-commit": "echo --- npm test" 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/hardhat.config.ts: -------------------------------------------------------------------------------- 1 | import { config as dotEnvConfig } from "dotenv"; 2 | dotEnvConfig(); 3 | 4 | import { HardhatUserConfig } from "hardhat/types"; 5 | 6 | import "@nomiclabs/hardhat-waffle"; 7 | import "@typechain/hardhat"; 8 | import "@nomiclabs/hardhat-etherscan"; 9 | import "solidity-coverage"; 10 | 11 | const INFURA_API_KEY = process.env.INFURA_API_KEY || ""; 12 | const RINKEBY_PRIVATE_KEY = 13 | process.env.RINKEBY_PRIVATE_KEY! || 14 | "0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3"; // well known private key 15 | const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY; 16 | 17 | const config: HardhatUserConfig = { 18 | defaultNetwork: "hardhat", 19 | solidity: { 20 | compilers: [{ version: "0.7.6", settings: {} }], 21 | }, 22 | networks: { 23 | hardhat: {}, 24 | localhost: {}, 25 | rinkeby: { 26 | url: `https://rinkeby.infura.io/v3/${INFURA_API_KEY}`, 27 | accounts: [RINKEBY_PRIVATE_KEY], 28 | }, 29 | coverage: { 30 | url: "http://127.0.0.1:8555", // Coverage launches its own ganache-cli client 31 | }, 32 | }, 33 | etherscan: { 34 | // Your API key for Etherscan 35 | // Obtain one at https://etherscan.io/ 36 | apiKey: ETHERSCAN_API_KEY, 37 | }, 38 | }; 39 | 40 | export default config; 41 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/tools/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | base64-js@^1.3.1: 6 | version "1.5.1" 7 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 8 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 9 | 10 | buffer@^6.0.3: 11 | version "6.0.3" 12 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 13 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 14 | dependencies: 15 | base64-js "^1.3.1" 16 | ieee754 "^1.2.1" 17 | 18 | events@^3.3.0: 19 | version "3.3.0" 20 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 21 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 22 | 23 | ieee754@^1.2.1: 24 | version "1.2.1" 25 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 26 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 27 | 28 | process@^0.11.10: 29 | version "0.11.10" 30 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 31 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 32 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/test/counter.ts: -------------------------------------------------------------------------------- 1 | import { ethers} from "hardhat"; 2 | import chai from "chai"; 3 | import chaiAsPromised from "chai-as-promised"; 4 | import { Counter__factory, Counter } from "../typechain"; 5 | 6 | chai.use(chaiAsPromised); 7 | const { expect } = chai; 8 | 9 | describe("Counter", () => { 10 | let counter: Counter; 11 | 12 | beforeEach(async () => { 13 | // 1 14 | const signers = await ethers.getSigners(); 15 | 16 | // 2 17 | const counterFactory = (await ethers.getContractFactory( 18 | "Counter", 19 | signers[0] 20 | )) as Counter__factory; 21 | counter = await counterFactory.deploy(); 22 | await counter.deployed(); 23 | const initialCount = await counter.getCount(); 24 | 25 | // 3 26 | expect(initialCount).to.eq(0); 27 | expect(counter.address).to.properAddress; 28 | }); 29 | 30 | // 4 31 | describe("count up", async () => { 32 | it("should count up", async () => { 33 | await counter.countUp(); 34 | let count = await counter.getCount(); 35 | expect(count).to.eq(1); 36 | }); 37 | }); 38 | 39 | describe("count down", async () => { 40 | // 5 41 | it("should fail due to underflow exception", () => { 42 | return expect(counter.countDown()).to.eventually.be.rejectedWith(Error, 'Uint256 underflow'); 43 | }); 44 | 45 | it("should count down", async () => { 46 | await counter.countUp(); 47 | 48 | await counter.countDown(); 49 | const count = await counter.getCount(); 50 | expect(count).to.eq(0); 51 | }); 52 | }); 53 | }); 54 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "solidity-ts-dev-stack-example", 3 | "version": "0.0.2", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "build": "npm run clean && npm run compile", 8 | "clean": "npx hardhat clean", 9 | "compile": "npx hardhat compile", 10 | "test": "npx hardhat test", 11 | "coverage": "npm run build && npx hardhat coverage --temp artifacts --network coverage", 12 | "deploy": "cross-env dotenv -e .env.example npx hardhat run --network rinkeby scripts/deploy.ts" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "git+https://github.com/rhlsthrm/solidity-ts-dev-stack-example.git" 17 | }, 18 | "author": "rhlsthrm", 19 | "license": "MIT", 20 | "bugs": { 21 | "url": "https://github.com/rhlsthrm/solidity-ts-dev-stack-example/issues" 22 | }, 23 | "homepage": "https://github.com/rhlsthrm/solidity-ts-dev-stack-example#readme", 24 | "devDependencies": { 25 | "@nomiclabs/hardhat-ethers": "^2.0.2", 26 | "@nomiclabs/hardhat-etherscan": "^2.1.2", 27 | "@nomiclabs/hardhat-waffle": "^2.0.1", 28 | "@typechain/ethers-v5": "^7.0.0", 29 | "@typechain/hardhat": "^2.0.0", 30 | "@types/chai": "^4.2.18", 31 | "@types/chai-as-promised": "^7.1.1", 32 | "@types/mocha": "^8.2.2", 33 | "@types/node": "^15.0.3", 34 | "chai": "^4.3.4", 35 | "chai-as-promised": "^7.1.1", 36 | "cross-env": "^7.0.3", 37 | "dotenv": "^9.0.2", 38 | "dotenv-cli": "^4.0.0", 39 | "ethereum-waffle": "^3.3.0", 40 | "ethers": "^5.1.4", 41 | "hardhat": "^2.2.1", 42 | "solidity-coverage": "^0.7.16", 43 | "ts-generator": "^0.1.1", 44 | "ts-node": "^9.1.1", 45 | "typechain": "^5.0.0", 46 | "typescript": "^4.2.4" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "template-web3-react-express-hardhat-ts", 3 | "version": "0.0.1", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "tsc && vite build && npm run cp-libs", 7 | "cp-libs": "cp ../tools/browserified-libs/browserified-libs.js ./dist/", 8 | "serve": "vite preview" 9 | }, 10 | "dependencies": { 11 | "@ethersproject/providers": "^5.4.1", 12 | "@ethersproject/units": "^5.4.0", 13 | "@web3-react/authereum-connector": "^6.2.0", 14 | "@web3-react/core": "^6.1.9", 15 | "@web3-react/fortmatic-connector": "^6.1.6", 16 | "@web3-react/frame-connector": "^6.0.9", 17 | "@web3-react/injected-connector": "^6.0.7", 18 | "@web3-react/ledger-connector": "^6.1.9", 19 | "@web3-react/network-connector": "^6.1.9", 20 | "@web3-react/portis-connector": "^6.1.9", 21 | "@web3-react/squarelink-connector": "^6.1.9", 22 | "@web3-react/torus-connector": "^6.1.9", 23 | "@web3-react/trezor-connector": "^6.1.9", 24 | "@web3-react/walletconnect-connector": "^6.2.0", 25 | "@web3-react/walletlink-connector": "^6.2.3", 26 | "buffer": "^6.0.3", 27 | "cross-env": "^7.0.3", 28 | "events": "^3.3.0", 29 | "process": "^0.11.10", 30 | "react": "^17.0.2", 31 | "react-dom": "^17.0.2", 32 | "util": "^0.12.4", 33 | "web3": "^1.4.0" 34 | }, 35 | "devDependencies": { 36 | "@types/react": "^17.0.14", 37 | "@types/react-dom": "^17.0.9", 38 | "@vitejs/plugin-react-refresh": "^1.3.5", 39 | "browserify-zlib": "^0.2.0", 40 | "rollup-plugin-polyfill-node": "^0.6.2", 41 | "stream-browserify": "^3.0.0", 42 | "typescript": "^4.3.5", 43 | "vite": "^2.4.1" 44 | }, 45 | "prettier": { 46 | "tabWidth": 2, 47 | "printWidth": 120, 48 | "singleQuote": true, 49 | "trailingComma": "none", 50 | "parser": "typescript" 51 | }, 52 | "engines": { 53 | "node": ">=15.0.0" 54 | }, 55 | "husky": { 56 | "hooks": { 57 | "pre-commit": "echo --- npm test" 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/app/Main/hooks.ts: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from "react"; 2 | import { useWeb3React } from "@web3-react/core"; 3 | 4 | import { injected } from "./connectors"; 5 | 6 | export function useEagerConnect() { 7 | const { activate, active } = useWeb3React(); 8 | 9 | const [tried, setTried] = useState(false); 10 | 11 | useEffect(() => { 12 | injected.isAuthorized().then(isAuthorized => { 13 | if (isAuthorized) { 14 | 15 | activate(injected, undefined, true).catch(() => { 16 | setTried(true); 17 | }); 18 | } else { 19 | setTried(true); 20 | } 21 | }); 22 | }, [activate]); // intentionally only running on mount (make sure it's only mounted once :)) 23 | 24 | // if the connection worked, wait until we get confirmation of that to flip the flag 25 | useEffect(() => { 26 | if (!tried && active) { 27 | setTried(true); 28 | } 29 | }, [tried, active]); 30 | 31 | return tried; 32 | } 33 | 34 | export function useInactiveListener(suppress = false) { 35 | const { active, error, activate } = useWeb3React(); 36 | 37 | useEffect(() => { 38 | const { ethereum } = window as any; 39 | if (ethereum && ethereum.on && !active && !error && !suppress) { 40 | const handleChainChanged = (chainId: any) => { 41 | console.log("chainChanged", chainId); 42 | activate(injected); 43 | }; 44 | 45 | const handleAccountsChanged = (accounts: string) => { 46 | console.log("accountsChanged", accounts); 47 | if (accounts.length > 0) { 48 | activate(injected); 49 | } 50 | }; 51 | 52 | const handleNetworkChanged = (networkId: string) => { 53 | console.log("networkChanged", networkId); 54 | activate(injected); 55 | }; 56 | 57 | ethereum.on("chainChanged", handleChainChanged); 58 | ethereum.on("accountsChanged", handleAccountsChanged); 59 | ethereum.on("networkChanged", handleNetworkChanged); 60 | 61 | return () => { 62 | if (ethereum.removeListener) { 63 | ethereum.removeListener("chainChanged", handleChainChanged); 64 | ethereum.removeListener("accountsChanged", handleAccountsChanged); 65 | ethereum.removeListener("networkChanged", handleNetworkChanged); 66 | } 67 | }; 68 | } 69 | 70 | return () => {}; 71 | }, [active, error, suppress, activate]); 72 | } 73 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/solidity/hardhat/README.md: -------------------------------------------------------------------------------- 1 | # Typescript Solidity Dev Starter Kit 2 | 3 | _Updated to use Hardhat!_ 4 | 5 | This is a starter kit for developing, testing, and deploying smart contracts with a full Typescript environment. This stack uses [Hardhat](https://hardhat.org) as the platform layer to orchestrate all the tasks. [Ethers](https://docs.ethers.io/v5/) is used for all Ethereum interactions and testing. 6 | 7 | [Blog Post](https://medium.com/@rahulsethuram/the-new-solidity-dev-stack-buidler-ethers-waffle-typescript-tutorial-f07917de48ae) 8 | 9 | ## Using this Project 10 | 11 | Clone this repository, then install the dependencies with `npm install`. Build everything with `npm run build`. https://hardhat.org has excellent docs, and can be used as reference for extending this project. 12 | 13 | ## Available Functionality 14 | 15 | ### Build Contracts and Generate Typechain Typeings 16 | 17 | `npm run compile` 18 | 19 | ### Run Contract Tests & Get Callstacks 20 | 21 | In one terminal run `npx hardhat node` 22 | 23 | Then in another run `npm run test` 24 | 25 | Notes: 26 | 27 | - The gas usage table may be incomplete (the gas report currently needs to run with the `--network localhost` flag; see below). 28 | 29 | ### Run Contract Tests and Generate Gas Usage Report 30 | 31 | In one terminal run `npx hardhat node` 32 | 33 | Then in another run `npm run test -- --network localhost` 34 | 35 | Notes: 36 | 37 | - When running with this `localhost` option, you get a gas report but may not get good callstacks 38 | - See [here](https://github.com/cgewecke/eth-gas-reporter#installation-and-config) for how to configure the gas usage report. 39 | 40 | ### Run Coverage Report for Tests 41 | 42 | `npm run coverage` 43 | 44 | Notes: 45 | 46 | - running a coverage report currently deletes artifacts, so after each coverage run you will then need to run `npx hardhat clean` followed by `npm run build` before re-running tests 47 | - the branch coverage is 75% 48 | 49 | ### Deploy to Ethereum 50 | 51 | Create/modify network config in `hardhat.config.ts` and add API key and private key, then run: 52 | 53 | `npx hardhat run --network rinkeby scripts/deploy.ts` 54 | 55 | ### Verify on Etherscan 56 | 57 | Using the [hardhat-etherscan plugin](https://hardhat.org/plugins/nomiclabs-hardhat-etherscan.html), add Etherscan API key to `hardhat.config.ts`, then run: 58 | 59 | `npx hardhat verify --network rinkeby ` 60 | 61 | PRs and feedback welcome! 62 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/app/Main/connectors.ts: -------------------------------------------------------------------------------- 1 | import { InjectedConnector } from '@web3-react/injected-connector'; 2 | import { NetworkConnector } from '@web3-react/network-connector'; 3 | import { WalletConnectConnector } from '@web3-react/walletconnect-connector'; 4 | import { WalletLinkConnector } from '@web3-react/walletlink-connector'; 5 | import { LedgerConnector } from '@web3-react/ledger-connector'; 6 | import { TrezorConnector } from '@web3-react/trezor-connector'; 7 | import { FrameConnector } from '@web3-react/frame-connector'; 8 | import { FortmaticConnector } from '@web3-react/fortmatic-connector'; 9 | import { PortisConnector } from '@web3-react/portis-connector'; 10 | // import { SquarelinkConnector } from "@web3-react/squarelink-connector"; // error with Vite 11 | // import { TorusConnector } from '@web3-react/torus-connector'; 12 | import { AuthereumConnector } from '@web3-react/authereum-connector'; 13 | 14 | const POLLING_INTERVAL = 12000; 15 | const RPC_URLS = { 16 | 1: 'https://mainnet.infura.io/v3/84842078b09946638c03157f83405213', 17 | 4: 'https://rinkeby.infura.io/v3/84842078b09946638c03157f83405213' 18 | }; 19 | 20 | export const injected = new InjectedConnector({ 21 | supportedChainIds: [1, 3, 4, 5, 42] 22 | }); 23 | 24 | export const network = new NetworkConnector({ 25 | urls: { 1: RPC_URLS[1], 4: RPC_URLS[4] }, 26 | defaultChainId: 1 27 | // pollingInterval: POLLING_INTERVAL 28 | }); 29 | 30 | export const walletconnect = new WalletConnectConnector({ 31 | rpc: { 1: RPC_URLS[1] }, 32 | bridge: 'https://bridge.walletconnect.org', 33 | qrcode: true, 34 | pollingInterval: POLLING_INTERVAL 35 | }); 36 | 37 | export const walletlink = new WalletLinkConnector({ 38 | url: RPC_URLS[1], 39 | appName: 'web3-react example' 40 | }); 41 | 42 | export const ledger = new LedgerConnector({ 43 | chainId: 1, 44 | url: RPC_URLS[1], 45 | pollingInterval: POLLING_INTERVAL 46 | }); 47 | 48 | export const trezor = new TrezorConnector({ 49 | chainId: 1, 50 | url: RPC_URLS[1], 51 | pollingInterval: POLLING_INTERVAL, 52 | manifestEmail: 'dummy@abc.xyz', 53 | manifestAppUrl: 'https://8rg3h.csb.app/' 54 | }); 55 | 56 | export const frame = new FrameConnector({ supportedChainIds: [1] }); 57 | 58 | export const fortmatic = new FortmaticConnector({ 59 | apiKey: 'pk_live_F95FEECB1BE324B5', 60 | chainId: 1 61 | }); 62 | 63 | export const portis = new PortisConnector({ 64 | dAppId: '211b48db-e8cc-4b68-82ad-bf781727ea9e', 65 | networks: [1, 100] 66 | }); 67 | 68 | // export const squarelink = new SquarelinkConnector({ 69 | // clientId: "5f2a2233db82b06b24f9", 70 | // networks: [1, 100] 71 | // }); 72 | 73 | // export const torus = new TorusConnector({ chainId: 1 }); 74 | 75 | export const authereum = new AuthereumConnector({ chainId: 42 }); 76 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import meow from 'meow'; 3 | import { existsSync, mkdirSync, readdirSync, writeFileSync, statSync, copyFileSync } from 'fs'; 4 | import { fileURLToPath } from 'url'; 5 | import { createRequire } from 'module'; 6 | 7 | const require = createRequire(import.meta.url); 8 | const packageJson = require('./package.json'); 9 | const path = require('path'); 10 | const __filename = fileURLToPath(import.meta.url); 11 | const __dirname = path.dirname(__filename); 12 | 13 | const renameFiles = { 14 | _gitignore: '.gitignore', 15 | 'ui/_gitignore': 'ui/.gitignore' 16 | }; 17 | 18 | function copy(src, dest) { 19 | const stat = statSync(src); 20 | if (stat.isDirectory()) { 21 | copyDir(src, dest); 22 | } else { 23 | copyFileSync(src, dest); 24 | } 25 | } 26 | 27 | function copyDir(srcDir, destDir) { 28 | mkdirSync(destDir, { recursive: true }); 29 | for (const file of readdirSync(srcDir)) { 30 | if (['node_modules', 'cache', 'build', 'dist', 'logs', '.vercel', '.env'].indexOf(file) >= 0) { 31 | continue; 32 | } 33 | const srcFile = path.resolve(srcDir, file); 34 | const destFile = path.resolve(destDir, file); 35 | copy(srcFile, destFile); 36 | } 37 | } 38 | 39 | const cli = meow( 40 | ` 41 | Usage 42 | $ create-web3js-app 43 | 44 | Options 45 | --postfix Lorem ipsum [Default: rainbows] 46 | 47 | Examples 48 | $ create-web3js-app my-app 49 | `, 50 | { 51 | flags: { 52 | postfix: { 53 | type: 'string', 54 | default: 'rainbows' 55 | } 56 | } 57 | } 58 | ); 59 | 60 | console.log(`Version: ${packageJson.version}`); 61 | 62 | async function init() { 63 | const [name] = cli.input; 64 | 65 | if (!name) { 66 | console.log('ERROR: missing project name.'); 67 | process.exit(1); 68 | } 69 | if (existsSync(name)) { 70 | console.log('ERROR: directory already exists.'); 71 | process.exit(1); 72 | } 73 | console.log(`Creating web3 app "${name}"`); 74 | // console.log(name || 'unicorns', cli.flags); 75 | 76 | mkdirSync(name); 77 | 78 | const template = 'web3-react-express-hardhat-ts'; 79 | const templateDir = path.join(__dirname, `template-${template}`); 80 | 81 | const write = (root, file, content) => { 82 | const targetPath = renameFiles[file] ? path.join(root, renameFiles[file]) : path.join(root, file); 83 | if (content) { 84 | writeFileSync(targetPath, content); 85 | } else { 86 | copy(path.join(templateDir, file), targetPath); 87 | } 88 | }; 89 | 90 | const files = readdirSync(templateDir); 91 | for (const file of files.filter((f) => { 92 | return f !== 'package.json'; 93 | })) { 94 | write(name, file); 95 | } 96 | 97 | const pkg = require(path.join(templateDir, `ui/package.json`)); 98 | pkg.name = name; 99 | write(name, 'ui/package.json', JSON.stringify(pkg, null, 2)); 100 | 101 | console.log(`\nDone. Now run:\n$ cd ${name}`); 102 | } 103 | 104 | init().catch((e) => { 105 | console.error(e); 106 | }); 107 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/ui/src/app/Main/Main.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import { Web3ReactProvider, useWeb3React, UnsupportedChainIdError } from '@web3-react/core'; 3 | import { 4 | NoEthereumProviderError, 5 | UserRejectedRequestError as UserRejectedRequestErrorInjected 6 | } from '@web3-react/injected-connector'; 7 | import { 8 | URI_AVAILABLE, 9 | UserRejectedRequestError as UserRejectedRequestErrorWalletConnect 10 | } from '@web3-react/walletconnect-connector'; 11 | import { UserRejectedRequestError as UserRejectedRequestErrorFrame } from '@web3-react/frame-connector'; 12 | import { Web3Provider } from '@ethersproject/providers'; 13 | import { formatEther } from '@ethersproject/units'; 14 | 15 | import { injected, network, walletconnect, walletlink } from './connectors'; 16 | import { useEagerConnect, useInactiveListener } from './hooks'; 17 | import web3 from 'web3'; 18 | 19 | const TO_WALLET = '0x8770479B8d27fb0347E6B44871c06f96a3C00000'; 20 | 21 | const connectorsByName = { 22 | Injected: injected, 23 | Network: network, 24 | WalletConnect: walletconnect, 25 | WalletLink: walletlink 26 | }; 27 | 28 | function getErrorMessage(error: any) { 29 | if (error instanceof NoEthereumProviderError) { 30 | return 'No Ethereum browser extension detected, install MetaMask on desktop or visit from a dApp browser on mobile.'; 31 | } else if (error instanceof UnsupportedChainIdError) { 32 | return "You're connected to an unsupported network."; 33 | } else if ( 34 | error instanceof UserRejectedRequestErrorInjected || 35 | error instanceof UserRejectedRequestErrorWalletConnect || 36 | error instanceof UserRejectedRequestErrorFrame 37 | ) { 38 | return 'Please authorize this website to access your Ethereum account.'; 39 | } else { 40 | console.error(error); 41 | return 'An unknown error occurred. Check the console for more details.'; 42 | } 43 | } 44 | 45 | function getLibrary(provider: any) { 46 | const library = new Web3Provider(provider); 47 | library.pollingInterval = 8000; 48 | return library; 49 | } 50 | 51 | export default function App() { 52 | return ( 53 | 54 | 55 | 56 | ); 57 | } 58 | 59 | function MyComponent() { 60 | const [transactionId, setTransactionId] = React.useState(''); // transaction Id after sending payment. 61 | const context = useWeb3React(); 62 | const { connector, library, chainId, account, activate, deactivate, active, error } = context; 63 | 64 | // handle logic to recognize the connector currently being activated 65 | const [activatingConnector, setActivatingConnector] = React.useState(); 66 | React.useEffect(() => { 67 | console.log('running'); 68 | if (activatingConnector && activatingConnector === connector) { 69 | setActivatingConnector(undefined); 70 | } 71 | }, [activatingConnector, connector]); 72 | 73 | // handle logic to eagerly connect to the injected ethereum provider, if it exists and has granted access already 74 | const triedEager = useEagerConnect(); 75 | 76 | // handle logic to connect in reaction to certain events on the injected ethereum provider, if it exists 77 | useInactiveListener(!triedEager || !!activatingConnector); 78 | 79 | // set up block listener 80 | const [blockNumber, setBlockNumber] = React.useState(); 81 | React.useEffect(() => { 82 | console.log('running', library); 83 | if (library) { 84 | let stale = false; 85 | 86 | console.log('fetching block number!!'); 87 | library 88 | .getBlockNumber() 89 | .then((blockNumber: any) => { 90 | if (!stale) { 91 | setBlockNumber(blockNumber); 92 | } 93 | }) 94 | .catch(() => { 95 | if (!stale) { 96 | setBlockNumber(null); 97 | } 98 | }); 99 | 100 | const updateBlockNumber = (blockNumber: any) => { 101 | setBlockNumber(blockNumber); 102 | }; 103 | library.on('block', updateBlockNumber); 104 | 105 | return () => { 106 | library.removeListener('block', updateBlockNumber); 107 | stale = true; 108 | setBlockNumber(undefined); 109 | }; 110 | } 111 | }, [library, chainId]); 112 | 113 | // fetch eth balance of the connected account 114 | const [ethBalance, setEthBalance] = React.useState(); 115 | React.useEffect(() => { 116 | console.log('running'); 117 | if (library && account) { 118 | let stale = false; 119 | 120 | library 121 | .getBalance(account) 122 | .then((balance: any) => { 123 | if (!stale) { 124 | setEthBalance(balance); 125 | } 126 | }) 127 | .catch(() => { 128 | if (!stale) { 129 | setEthBalance(null); 130 | } 131 | }); 132 | 133 | return () => { 134 | stale = true; 135 | setEthBalance(undefined); 136 | }; 137 | } 138 | }, [library, account, chainId]); 139 | 140 | // log the walletconnect URI 141 | React.useEffect(() => { 142 | console.log('running'); 143 | const logURI = (uri: string) => { 144 | console.log('WalletConnect URI', uri); 145 | }; 146 | walletconnect.on(URI_AVAILABLE, logURI); 147 | 148 | return () => { 149 | walletconnect.off(URI_AVAILABLE, logURI); 150 | }; 151 | }, []); 152 | 153 | const injectedConnector = connectorsByName['Injected']; 154 | const walletConnected = injectedConnector === connector; 155 | const onPayClick = () => { 156 | library.send('eth_sendTransaction', [ 157 | { 158 | from: account, 159 | to: TO_WALLET, 160 | value: web3.utils.toHex(web3.utils.toWei('0.01', 'ether')), 161 | gasPrice: '0x0000001F6EA08600', 162 | gas: '0x0001ADB0' 163 | } 164 | ]); 165 | // .then((tid) => { 166 | // setTransactionId(tid); 167 | // }); 168 | }; 169 | 170 | return ( 171 |
172 |
173 |
174 |
175 |
176 | Account 177 | 178 | {account === undefined 179 | ? ' N/A' 180 | : account === null 181 | ? 'None' 182 | : ` ${account.substring(0, 6)}...${account.substring(account.length - 4)}`} 183 | 184 |
185 |
186 | Balance 187 | 188 | {ethBalance === undefined 189 | ? ' N/A' 190 | : ethBalance === null 191 | ? 'Error' 192 | : ` Ξ ${parseFloat(formatEther(ethBalance || 0)).toPrecision(4)}`} 193 | 194 |
195 | 196 |
197 | {walletConnected ? ( 198 | 205 | ) : ( 206 | 215 | )} 216 | {active ? '🟢' : error ? '🔴' : '🟠'} 217 | 218 | {walletConnected && } 219 |
220 |
221 |
222 |
223 | {!!error &&

{getErrorMessage(error)}

} 224 |
225 | ); 226 | } 227 | -------------------------------------------------------------------------------- /template-web3-react-express-hardhat-ts/backend/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backend", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "compression": "^1.7.4", 9 | "express": "^4.17.1", 10 | "helmet": "^4.6.0" 11 | }, 12 | "devDependencies": { 13 | "@types/express": "^4.17.13", 14 | "@types/node": "^14.14.31", 15 | "rimraf": "^3.0.2", 16 | "typescript": "^4.3.5" 17 | } 18 | }, 19 | "node_modules/@types/body-parser": { 20 | "version": "1.19.0", 21 | "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", 22 | "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", 23 | "dev": true, 24 | "dependencies": { 25 | "@types/connect": "*", 26 | "@types/node": "*" 27 | } 28 | }, 29 | "node_modules/@types/connect": { 30 | "version": "3.4.34", 31 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", 32 | "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", 33 | "dev": true, 34 | "dependencies": { 35 | "@types/node": "*" 36 | } 37 | }, 38 | "node_modules/@types/express": { 39 | "version": "4.17.13", 40 | "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", 41 | "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", 42 | "dev": true, 43 | "dependencies": { 44 | "@types/body-parser": "*", 45 | "@types/express-serve-static-core": "^4.17.18", 46 | "@types/qs": "*", 47 | "@types/serve-static": "*" 48 | } 49 | }, 50 | "node_modules/@types/express-serve-static-core": { 51 | "version": "4.17.18", 52 | "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", 53 | "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", 54 | "dev": true, 55 | "dependencies": { 56 | "@types/node": "*", 57 | "@types/qs": "*", 58 | "@types/range-parser": "*" 59 | } 60 | }, 61 | "node_modules/@types/mime": { 62 | "version": "1.3.2", 63 | "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", 64 | "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", 65 | "dev": true 66 | }, 67 | "node_modules/@types/node": { 68 | "version": "14.14.31", 69 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", 70 | "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", 71 | "dev": true 72 | }, 73 | "node_modules/@types/qs": { 74 | "version": "6.9.5", 75 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz", 76 | "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==", 77 | "dev": true 78 | }, 79 | "node_modules/@types/range-parser": { 80 | "version": "1.2.3", 81 | "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", 82 | "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", 83 | "dev": true 84 | }, 85 | "node_modules/@types/serve-static": { 86 | "version": "1.13.9", 87 | "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", 88 | "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", 89 | "dev": true, 90 | "dependencies": { 91 | "@types/mime": "^1", 92 | "@types/node": "*" 93 | } 94 | }, 95 | "node_modules/accepts": { 96 | "version": "1.3.7", 97 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 98 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 99 | "dependencies": { 100 | "mime-types": "~2.1.24", 101 | "negotiator": "0.6.2" 102 | }, 103 | "engines": { 104 | "node": ">= 0.6" 105 | } 106 | }, 107 | "node_modules/array-flatten": { 108 | "version": "1.1.1", 109 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 110 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 111 | }, 112 | "node_modules/balanced-match": { 113 | "version": "1.0.2", 114 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 115 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 116 | "dev": true 117 | }, 118 | "node_modules/body-parser": { 119 | "version": "1.19.0", 120 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 121 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 122 | "dependencies": { 123 | "bytes": "3.1.0", 124 | "content-type": "~1.0.4", 125 | "debug": "2.6.9", 126 | "depd": "~1.1.2", 127 | "http-errors": "1.7.2", 128 | "iconv-lite": "0.4.24", 129 | "on-finished": "~2.3.0", 130 | "qs": "6.7.0", 131 | "raw-body": "2.4.0", 132 | "type-is": "~1.6.17" 133 | }, 134 | "engines": { 135 | "node": ">= 0.8" 136 | } 137 | }, 138 | "node_modules/brace-expansion": { 139 | "version": "1.1.11", 140 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 141 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 142 | "dev": true, 143 | "dependencies": { 144 | "balanced-match": "^1.0.0", 145 | "concat-map": "0.0.1" 146 | } 147 | }, 148 | "node_modules/bytes": { 149 | "version": "3.1.0", 150 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 151 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", 152 | "engines": { 153 | "node": ">= 0.8" 154 | } 155 | }, 156 | "node_modules/compressible": { 157 | "version": "2.0.18", 158 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", 159 | "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", 160 | "dependencies": { 161 | "mime-db": ">= 1.43.0 < 2" 162 | }, 163 | "engines": { 164 | "node": ">= 0.6" 165 | } 166 | }, 167 | "node_modules/compression": { 168 | "version": "1.7.4", 169 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", 170 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", 171 | "dependencies": { 172 | "accepts": "~1.3.5", 173 | "bytes": "3.0.0", 174 | "compressible": "~2.0.16", 175 | "debug": "2.6.9", 176 | "on-headers": "~1.0.2", 177 | "safe-buffer": "5.1.2", 178 | "vary": "~1.1.2" 179 | }, 180 | "engines": { 181 | "node": ">= 0.8.0" 182 | } 183 | }, 184 | "node_modules/compression/node_modules/bytes": { 185 | "version": "3.0.0", 186 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 187 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", 188 | "engines": { 189 | "node": ">= 0.8" 190 | } 191 | }, 192 | "node_modules/concat-map": { 193 | "version": "0.0.1", 194 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 195 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 196 | "dev": true 197 | }, 198 | "node_modules/content-disposition": { 199 | "version": "0.5.3", 200 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 201 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 202 | "dependencies": { 203 | "safe-buffer": "5.1.2" 204 | }, 205 | "engines": { 206 | "node": ">= 0.6" 207 | } 208 | }, 209 | "node_modules/content-type": { 210 | "version": "1.0.4", 211 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 212 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 213 | "engines": { 214 | "node": ">= 0.6" 215 | } 216 | }, 217 | "node_modules/cookie": { 218 | "version": "0.4.0", 219 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 220 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", 221 | "engines": { 222 | "node": ">= 0.6" 223 | } 224 | }, 225 | "node_modules/cookie-signature": { 226 | "version": "1.0.6", 227 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 228 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 229 | }, 230 | "node_modules/debug": { 231 | "version": "2.6.9", 232 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 233 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 234 | "dependencies": { 235 | "ms": "2.0.0" 236 | } 237 | }, 238 | "node_modules/depd": { 239 | "version": "1.1.2", 240 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 241 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", 242 | "engines": { 243 | "node": ">= 0.6" 244 | } 245 | }, 246 | "node_modules/destroy": { 247 | "version": "1.0.4", 248 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 249 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 250 | }, 251 | "node_modules/ee-first": { 252 | "version": "1.1.1", 253 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 254 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 255 | }, 256 | "node_modules/encodeurl": { 257 | "version": "1.0.2", 258 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 259 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 260 | "engines": { 261 | "node": ">= 0.8" 262 | } 263 | }, 264 | "node_modules/escape-html": { 265 | "version": "1.0.3", 266 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 267 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 268 | }, 269 | "node_modules/etag": { 270 | "version": "1.8.1", 271 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 272 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", 273 | "engines": { 274 | "node": ">= 0.6" 275 | } 276 | }, 277 | "node_modules/express": { 278 | "version": "4.17.1", 279 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 280 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 281 | "dependencies": { 282 | "accepts": "~1.3.7", 283 | "array-flatten": "1.1.1", 284 | "body-parser": "1.19.0", 285 | "content-disposition": "0.5.3", 286 | "content-type": "~1.0.4", 287 | "cookie": "0.4.0", 288 | "cookie-signature": "1.0.6", 289 | "debug": "2.6.9", 290 | "depd": "~1.1.2", 291 | "encodeurl": "~1.0.2", 292 | "escape-html": "~1.0.3", 293 | "etag": "~1.8.1", 294 | "finalhandler": "~1.1.2", 295 | "fresh": "0.5.2", 296 | "merge-descriptors": "1.0.1", 297 | "methods": "~1.1.2", 298 | "on-finished": "~2.3.0", 299 | "parseurl": "~1.3.3", 300 | "path-to-regexp": "0.1.7", 301 | "proxy-addr": "~2.0.5", 302 | "qs": "6.7.0", 303 | "range-parser": "~1.2.1", 304 | "safe-buffer": "5.1.2", 305 | "send": "0.17.1", 306 | "serve-static": "1.14.1", 307 | "setprototypeof": "1.1.1", 308 | "statuses": "~1.5.0", 309 | "type-is": "~1.6.18", 310 | "utils-merge": "1.0.1", 311 | "vary": "~1.1.2" 312 | }, 313 | "engines": { 314 | "node": ">= 0.10.0" 315 | } 316 | }, 317 | "node_modules/finalhandler": { 318 | "version": "1.1.2", 319 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 320 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 321 | "dependencies": { 322 | "debug": "2.6.9", 323 | "encodeurl": "~1.0.2", 324 | "escape-html": "~1.0.3", 325 | "on-finished": "~2.3.0", 326 | "parseurl": "~1.3.3", 327 | "statuses": "~1.5.0", 328 | "unpipe": "~1.0.0" 329 | }, 330 | "engines": { 331 | "node": ">= 0.8" 332 | } 333 | }, 334 | "node_modules/forwarded": { 335 | "version": "0.1.2", 336 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 337 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", 338 | "engines": { 339 | "node": ">= 0.6" 340 | } 341 | }, 342 | "node_modules/fresh": { 343 | "version": "0.5.2", 344 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 345 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", 346 | "engines": { 347 | "node": ">= 0.6" 348 | } 349 | }, 350 | "node_modules/fs.realpath": { 351 | "version": "1.0.0", 352 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 353 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 354 | "dev": true 355 | }, 356 | "node_modules/glob": { 357 | "version": "7.1.7", 358 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 359 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 360 | "dev": true, 361 | "dependencies": { 362 | "fs.realpath": "^1.0.0", 363 | "inflight": "^1.0.4", 364 | "inherits": "2", 365 | "minimatch": "^3.0.4", 366 | "once": "^1.3.0", 367 | "path-is-absolute": "^1.0.0" 368 | }, 369 | "engines": { 370 | "node": "*" 371 | }, 372 | "funding": { 373 | "url": "https://github.com/sponsors/isaacs" 374 | } 375 | }, 376 | "node_modules/helmet": { 377 | "version": "4.6.0", 378 | "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", 379 | "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", 380 | "engines": { 381 | "node": ">=10.0.0" 382 | } 383 | }, 384 | "node_modules/http-errors": { 385 | "version": "1.7.2", 386 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 387 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 388 | "dependencies": { 389 | "depd": "~1.1.2", 390 | "inherits": "2.0.3", 391 | "setprototypeof": "1.1.1", 392 | "statuses": ">= 1.5.0 < 2", 393 | "toidentifier": "1.0.0" 394 | }, 395 | "engines": { 396 | "node": ">= 0.6" 397 | } 398 | }, 399 | "node_modules/iconv-lite": { 400 | "version": "0.4.24", 401 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 402 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 403 | "dependencies": { 404 | "safer-buffer": ">= 2.1.2 < 3" 405 | }, 406 | "engines": { 407 | "node": ">=0.10.0" 408 | } 409 | }, 410 | "node_modules/inflight": { 411 | "version": "1.0.6", 412 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 413 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 414 | "dev": true, 415 | "dependencies": { 416 | "once": "^1.3.0", 417 | "wrappy": "1" 418 | } 419 | }, 420 | "node_modules/inherits": { 421 | "version": "2.0.3", 422 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 423 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 424 | }, 425 | "node_modules/ipaddr.js": { 426 | "version": "1.9.1", 427 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 428 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 429 | "engines": { 430 | "node": ">= 0.10" 431 | } 432 | }, 433 | "node_modules/media-typer": { 434 | "version": "0.3.0", 435 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 436 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", 437 | "engines": { 438 | "node": ">= 0.6" 439 | } 440 | }, 441 | "node_modules/merge-descriptors": { 442 | "version": "1.0.1", 443 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 444 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 445 | }, 446 | "node_modules/methods": { 447 | "version": "1.1.2", 448 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 449 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", 450 | "engines": { 451 | "node": ">= 0.6" 452 | } 453 | }, 454 | "node_modules/mime": { 455 | "version": "1.6.0", 456 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 457 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 458 | "bin": { 459 | "mime": "cli.js" 460 | }, 461 | "engines": { 462 | "node": ">=4" 463 | } 464 | }, 465 | "node_modules/mime-db": { 466 | "version": "1.46.0", 467 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", 468 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", 469 | "engines": { 470 | "node": ">= 0.6" 471 | } 472 | }, 473 | "node_modules/mime-types": { 474 | "version": "2.1.29", 475 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", 476 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", 477 | "dependencies": { 478 | "mime-db": "1.46.0" 479 | }, 480 | "engines": { 481 | "node": ">= 0.6" 482 | } 483 | }, 484 | "node_modules/minimatch": { 485 | "version": "3.0.4", 486 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 487 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 488 | "dev": true, 489 | "dependencies": { 490 | "brace-expansion": "^1.1.7" 491 | }, 492 | "engines": { 493 | "node": "*" 494 | } 495 | }, 496 | "node_modules/ms": { 497 | "version": "2.0.0", 498 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 499 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 500 | }, 501 | "node_modules/negotiator": { 502 | "version": "0.6.2", 503 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 504 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", 505 | "engines": { 506 | "node": ">= 0.6" 507 | } 508 | }, 509 | "node_modules/on-finished": { 510 | "version": "2.3.0", 511 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 512 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 513 | "dependencies": { 514 | "ee-first": "1.1.1" 515 | }, 516 | "engines": { 517 | "node": ">= 0.8" 518 | } 519 | }, 520 | "node_modules/on-headers": { 521 | "version": "1.0.2", 522 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 523 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", 524 | "engines": { 525 | "node": ">= 0.8" 526 | } 527 | }, 528 | "node_modules/once": { 529 | "version": "1.4.0", 530 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 531 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 532 | "dev": true, 533 | "dependencies": { 534 | "wrappy": "1" 535 | } 536 | }, 537 | "node_modules/parseurl": { 538 | "version": "1.3.3", 539 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 540 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 541 | "engines": { 542 | "node": ">= 0.8" 543 | } 544 | }, 545 | "node_modules/path-is-absolute": { 546 | "version": "1.0.1", 547 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 548 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 549 | "dev": true, 550 | "engines": { 551 | "node": ">=0.10.0" 552 | } 553 | }, 554 | "node_modules/path-to-regexp": { 555 | "version": "0.1.7", 556 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 557 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 558 | }, 559 | "node_modules/proxy-addr": { 560 | "version": "2.0.6", 561 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 562 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 563 | "dependencies": { 564 | "forwarded": "~0.1.2", 565 | "ipaddr.js": "1.9.1" 566 | }, 567 | "engines": { 568 | "node": ">= 0.10" 569 | } 570 | }, 571 | "node_modules/qs": { 572 | "version": "6.7.0", 573 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 574 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", 575 | "engines": { 576 | "node": ">=0.6" 577 | } 578 | }, 579 | "node_modules/range-parser": { 580 | "version": "1.2.1", 581 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 582 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 583 | "engines": { 584 | "node": ">= 0.6" 585 | } 586 | }, 587 | "node_modules/raw-body": { 588 | "version": "2.4.0", 589 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 590 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 591 | "dependencies": { 592 | "bytes": "3.1.0", 593 | "http-errors": "1.7.2", 594 | "iconv-lite": "0.4.24", 595 | "unpipe": "1.0.0" 596 | }, 597 | "engines": { 598 | "node": ">= 0.8" 599 | } 600 | }, 601 | "node_modules/rimraf": { 602 | "version": "3.0.2", 603 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 604 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 605 | "dev": true, 606 | "dependencies": { 607 | "glob": "^7.1.3" 608 | }, 609 | "bin": { 610 | "rimraf": "bin.js" 611 | }, 612 | "funding": { 613 | "url": "https://github.com/sponsors/isaacs" 614 | } 615 | }, 616 | "node_modules/safe-buffer": { 617 | "version": "5.1.2", 618 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 619 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 620 | }, 621 | "node_modules/safer-buffer": { 622 | "version": "2.1.2", 623 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 624 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 625 | }, 626 | "node_modules/send": { 627 | "version": "0.17.1", 628 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 629 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 630 | "dependencies": { 631 | "debug": "2.6.9", 632 | "depd": "~1.1.2", 633 | "destroy": "~1.0.4", 634 | "encodeurl": "~1.0.2", 635 | "escape-html": "~1.0.3", 636 | "etag": "~1.8.1", 637 | "fresh": "0.5.2", 638 | "http-errors": "~1.7.2", 639 | "mime": "1.6.0", 640 | "ms": "2.1.1", 641 | "on-finished": "~2.3.0", 642 | "range-parser": "~1.2.1", 643 | "statuses": "~1.5.0" 644 | }, 645 | "engines": { 646 | "node": ">= 0.8.0" 647 | } 648 | }, 649 | "node_modules/send/node_modules/ms": { 650 | "version": "2.1.1", 651 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 652 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 653 | }, 654 | "node_modules/serve-static": { 655 | "version": "1.14.1", 656 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 657 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 658 | "dependencies": { 659 | "encodeurl": "~1.0.2", 660 | "escape-html": "~1.0.3", 661 | "parseurl": "~1.3.3", 662 | "send": "0.17.1" 663 | }, 664 | "engines": { 665 | "node": ">= 0.8.0" 666 | } 667 | }, 668 | "node_modules/setprototypeof": { 669 | "version": "1.1.1", 670 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 671 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 672 | }, 673 | "node_modules/statuses": { 674 | "version": "1.5.0", 675 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 676 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", 677 | "engines": { 678 | "node": ">= 0.6" 679 | } 680 | }, 681 | "node_modules/toidentifier": { 682 | "version": "1.0.0", 683 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 684 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", 685 | "engines": { 686 | "node": ">=0.6" 687 | } 688 | }, 689 | "node_modules/type-is": { 690 | "version": "1.6.18", 691 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 692 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 693 | "dependencies": { 694 | "media-typer": "0.3.0", 695 | "mime-types": "~2.1.24" 696 | }, 697 | "engines": { 698 | "node": ">= 0.6" 699 | } 700 | }, 701 | "node_modules/typescript": { 702 | "version": "4.3.5", 703 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", 704 | "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", 705 | "dev": true, 706 | "bin": { 707 | "tsc": "bin/tsc", 708 | "tsserver": "bin/tsserver" 709 | }, 710 | "engines": { 711 | "node": ">=4.2.0" 712 | } 713 | }, 714 | "node_modules/unpipe": { 715 | "version": "1.0.0", 716 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 717 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", 718 | "engines": { 719 | "node": ">= 0.8" 720 | } 721 | }, 722 | "node_modules/utils-merge": { 723 | "version": "1.0.1", 724 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 725 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", 726 | "engines": { 727 | "node": ">= 0.4.0" 728 | } 729 | }, 730 | "node_modules/vary": { 731 | "version": "1.1.2", 732 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 733 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", 734 | "engines": { 735 | "node": ">= 0.8" 736 | } 737 | }, 738 | "node_modules/wrappy": { 739 | "version": "1.0.2", 740 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 741 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 742 | "dev": true 743 | } 744 | }, 745 | "dependencies": { 746 | "@types/body-parser": { 747 | "version": "1.19.0", 748 | "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", 749 | "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", 750 | "dev": true, 751 | "requires": { 752 | "@types/connect": "*", 753 | "@types/node": "*" 754 | } 755 | }, 756 | "@types/connect": { 757 | "version": "3.4.34", 758 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", 759 | "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", 760 | "dev": true, 761 | "requires": { 762 | "@types/node": "*" 763 | } 764 | }, 765 | "@types/express": { 766 | "version": "4.17.13", 767 | "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", 768 | "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", 769 | "dev": true, 770 | "requires": { 771 | "@types/body-parser": "*", 772 | "@types/express-serve-static-core": "^4.17.18", 773 | "@types/qs": "*", 774 | "@types/serve-static": "*" 775 | } 776 | }, 777 | "@types/express-serve-static-core": { 778 | "version": "4.17.18", 779 | "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", 780 | "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", 781 | "dev": true, 782 | "requires": { 783 | "@types/node": "*", 784 | "@types/qs": "*", 785 | "@types/range-parser": "*" 786 | } 787 | }, 788 | "@types/mime": { 789 | "version": "1.3.2", 790 | "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", 791 | "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", 792 | "dev": true 793 | }, 794 | "@types/node": { 795 | "version": "14.14.31", 796 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", 797 | "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", 798 | "dev": true 799 | }, 800 | "@types/qs": { 801 | "version": "6.9.5", 802 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz", 803 | "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==", 804 | "dev": true 805 | }, 806 | "@types/range-parser": { 807 | "version": "1.2.3", 808 | "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", 809 | "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", 810 | "dev": true 811 | }, 812 | "@types/serve-static": { 813 | "version": "1.13.9", 814 | "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", 815 | "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", 816 | "dev": true, 817 | "requires": { 818 | "@types/mime": "^1", 819 | "@types/node": "*" 820 | } 821 | }, 822 | "accepts": { 823 | "version": "1.3.7", 824 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 825 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 826 | "requires": { 827 | "mime-types": "~2.1.24", 828 | "negotiator": "0.6.2" 829 | } 830 | }, 831 | "array-flatten": { 832 | "version": "1.1.1", 833 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 834 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 835 | }, 836 | "balanced-match": { 837 | "version": "1.0.2", 838 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 839 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 840 | "dev": true 841 | }, 842 | "body-parser": { 843 | "version": "1.19.0", 844 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 845 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 846 | "requires": { 847 | "bytes": "3.1.0", 848 | "content-type": "~1.0.4", 849 | "debug": "2.6.9", 850 | "depd": "~1.1.2", 851 | "http-errors": "1.7.2", 852 | "iconv-lite": "0.4.24", 853 | "on-finished": "~2.3.0", 854 | "qs": "6.7.0", 855 | "raw-body": "2.4.0", 856 | "type-is": "~1.6.17" 857 | } 858 | }, 859 | "brace-expansion": { 860 | "version": "1.1.11", 861 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 862 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 863 | "dev": true, 864 | "requires": { 865 | "balanced-match": "^1.0.0", 866 | "concat-map": "0.0.1" 867 | } 868 | }, 869 | "bytes": { 870 | "version": "3.1.0", 871 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 872 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 873 | }, 874 | "compressible": { 875 | "version": "2.0.18", 876 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", 877 | "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", 878 | "requires": { 879 | "mime-db": ">= 1.43.0 < 2" 880 | } 881 | }, 882 | "compression": { 883 | "version": "1.7.4", 884 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", 885 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", 886 | "requires": { 887 | "accepts": "~1.3.5", 888 | "bytes": "3.0.0", 889 | "compressible": "~2.0.16", 890 | "debug": "2.6.9", 891 | "on-headers": "~1.0.2", 892 | "safe-buffer": "5.1.2", 893 | "vary": "~1.1.2" 894 | }, 895 | "dependencies": { 896 | "bytes": { 897 | "version": "3.0.0", 898 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 899 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 900 | } 901 | } 902 | }, 903 | "concat-map": { 904 | "version": "0.0.1", 905 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 906 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 907 | "dev": true 908 | }, 909 | "content-disposition": { 910 | "version": "0.5.3", 911 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 912 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 913 | "requires": { 914 | "safe-buffer": "5.1.2" 915 | } 916 | }, 917 | "content-type": { 918 | "version": "1.0.4", 919 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 920 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 921 | }, 922 | "cookie": { 923 | "version": "0.4.0", 924 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 925 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 926 | }, 927 | "cookie-signature": { 928 | "version": "1.0.6", 929 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 930 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 931 | }, 932 | "debug": { 933 | "version": "2.6.9", 934 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 935 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 936 | "requires": { 937 | "ms": "2.0.0" 938 | } 939 | }, 940 | "depd": { 941 | "version": "1.1.2", 942 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 943 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 944 | }, 945 | "destroy": { 946 | "version": "1.0.4", 947 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 948 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 949 | }, 950 | "ee-first": { 951 | "version": "1.1.1", 952 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 953 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 954 | }, 955 | "encodeurl": { 956 | "version": "1.0.2", 957 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 958 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 959 | }, 960 | "escape-html": { 961 | "version": "1.0.3", 962 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 963 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 964 | }, 965 | "etag": { 966 | "version": "1.8.1", 967 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 968 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 969 | }, 970 | "express": { 971 | "version": "4.17.1", 972 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 973 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 974 | "requires": { 975 | "accepts": "~1.3.7", 976 | "array-flatten": "1.1.1", 977 | "body-parser": "1.19.0", 978 | "content-disposition": "0.5.3", 979 | "content-type": "~1.0.4", 980 | "cookie": "0.4.0", 981 | "cookie-signature": "1.0.6", 982 | "debug": "2.6.9", 983 | "depd": "~1.1.2", 984 | "encodeurl": "~1.0.2", 985 | "escape-html": "~1.0.3", 986 | "etag": "~1.8.1", 987 | "finalhandler": "~1.1.2", 988 | "fresh": "0.5.2", 989 | "merge-descriptors": "1.0.1", 990 | "methods": "~1.1.2", 991 | "on-finished": "~2.3.0", 992 | "parseurl": "~1.3.3", 993 | "path-to-regexp": "0.1.7", 994 | "proxy-addr": "~2.0.5", 995 | "qs": "6.7.0", 996 | "range-parser": "~1.2.1", 997 | "safe-buffer": "5.1.2", 998 | "send": "0.17.1", 999 | "serve-static": "1.14.1", 1000 | "setprototypeof": "1.1.1", 1001 | "statuses": "~1.5.0", 1002 | "type-is": "~1.6.18", 1003 | "utils-merge": "1.0.1", 1004 | "vary": "~1.1.2" 1005 | } 1006 | }, 1007 | "finalhandler": { 1008 | "version": "1.1.2", 1009 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 1010 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 1011 | "requires": { 1012 | "debug": "2.6.9", 1013 | "encodeurl": "~1.0.2", 1014 | "escape-html": "~1.0.3", 1015 | "on-finished": "~2.3.0", 1016 | "parseurl": "~1.3.3", 1017 | "statuses": "~1.5.0", 1018 | "unpipe": "~1.0.0" 1019 | } 1020 | }, 1021 | "forwarded": { 1022 | "version": "0.1.2", 1023 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 1024 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 1025 | }, 1026 | "fresh": { 1027 | "version": "0.5.2", 1028 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1029 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1030 | }, 1031 | "fs.realpath": { 1032 | "version": "1.0.0", 1033 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1034 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1035 | "dev": true 1036 | }, 1037 | "glob": { 1038 | "version": "7.1.7", 1039 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 1040 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 1041 | "dev": true, 1042 | "requires": { 1043 | "fs.realpath": "^1.0.0", 1044 | "inflight": "^1.0.4", 1045 | "inherits": "2", 1046 | "minimatch": "^3.0.4", 1047 | "once": "^1.3.0", 1048 | "path-is-absolute": "^1.0.0" 1049 | } 1050 | }, 1051 | "helmet": { 1052 | "version": "4.6.0", 1053 | "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", 1054 | "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" 1055 | }, 1056 | "http-errors": { 1057 | "version": "1.7.2", 1058 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 1059 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 1060 | "requires": { 1061 | "depd": "~1.1.2", 1062 | "inherits": "2.0.3", 1063 | "setprototypeof": "1.1.1", 1064 | "statuses": ">= 1.5.0 < 2", 1065 | "toidentifier": "1.0.0" 1066 | } 1067 | }, 1068 | "iconv-lite": { 1069 | "version": "0.4.24", 1070 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1071 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1072 | "requires": { 1073 | "safer-buffer": ">= 2.1.2 < 3" 1074 | } 1075 | }, 1076 | "inflight": { 1077 | "version": "1.0.6", 1078 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1079 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1080 | "dev": true, 1081 | "requires": { 1082 | "once": "^1.3.0", 1083 | "wrappy": "1" 1084 | } 1085 | }, 1086 | "inherits": { 1087 | "version": "2.0.3", 1088 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1089 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1090 | }, 1091 | "ipaddr.js": { 1092 | "version": "1.9.1", 1093 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1094 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1095 | }, 1096 | "media-typer": { 1097 | "version": "0.3.0", 1098 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1099 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1100 | }, 1101 | "merge-descriptors": { 1102 | "version": "1.0.1", 1103 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1104 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1105 | }, 1106 | "methods": { 1107 | "version": "1.1.2", 1108 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1109 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1110 | }, 1111 | "mime": { 1112 | "version": "1.6.0", 1113 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1114 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1115 | }, 1116 | "mime-db": { 1117 | "version": "1.46.0", 1118 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", 1119 | "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" 1120 | }, 1121 | "mime-types": { 1122 | "version": "2.1.29", 1123 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", 1124 | "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", 1125 | "requires": { 1126 | "mime-db": "1.46.0" 1127 | } 1128 | }, 1129 | "minimatch": { 1130 | "version": "3.0.4", 1131 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1132 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1133 | "dev": true, 1134 | "requires": { 1135 | "brace-expansion": "^1.1.7" 1136 | } 1137 | }, 1138 | "ms": { 1139 | "version": "2.0.0", 1140 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1141 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1142 | }, 1143 | "negotiator": { 1144 | "version": "0.6.2", 1145 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1146 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 1147 | }, 1148 | "on-finished": { 1149 | "version": "2.3.0", 1150 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1151 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1152 | "requires": { 1153 | "ee-first": "1.1.1" 1154 | } 1155 | }, 1156 | "on-headers": { 1157 | "version": "1.0.2", 1158 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 1159 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" 1160 | }, 1161 | "once": { 1162 | "version": "1.4.0", 1163 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1164 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1165 | "dev": true, 1166 | "requires": { 1167 | "wrappy": "1" 1168 | } 1169 | }, 1170 | "parseurl": { 1171 | "version": "1.3.3", 1172 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1173 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1174 | }, 1175 | "path-is-absolute": { 1176 | "version": "1.0.1", 1177 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1178 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1179 | "dev": true 1180 | }, 1181 | "path-to-regexp": { 1182 | "version": "0.1.7", 1183 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1184 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1185 | }, 1186 | "proxy-addr": { 1187 | "version": "2.0.6", 1188 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 1189 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 1190 | "requires": { 1191 | "forwarded": "~0.1.2", 1192 | "ipaddr.js": "1.9.1" 1193 | } 1194 | }, 1195 | "qs": { 1196 | "version": "6.7.0", 1197 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 1198 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 1199 | }, 1200 | "range-parser": { 1201 | "version": "1.2.1", 1202 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1203 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1204 | }, 1205 | "raw-body": { 1206 | "version": "2.4.0", 1207 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 1208 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 1209 | "requires": { 1210 | "bytes": "3.1.0", 1211 | "http-errors": "1.7.2", 1212 | "iconv-lite": "0.4.24", 1213 | "unpipe": "1.0.0" 1214 | } 1215 | }, 1216 | "rimraf": { 1217 | "version": "3.0.2", 1218 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1219 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1220 | "dev": true, 1221 | "requires": { 1222 | "glob": "^7.1.3" 1223 | } 1224 | }, 1225 | "safe-buffer": { 1226 | "version": "5.1.2", 1227 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1228 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1229 | }, 1230 | "safer-buffer": { 1231 | "version": "2.1.2", 1232 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1233 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1234 | }, 1235 | "send": { 1236 | "version": "0.17.1", 1237 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 1238 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 1239 | "requires": { 1240 | "debug": "2.6.9", 1241 | "depd": "~1.1.2", 1242 | "destroy": "~1.0.4", 1243 | "encodeurl": "~1.0.2", 1244 | "escape-html": "~1.0.3", 1245 | "etag": "~1.8.1", 1246 | "fresh": "0.5.2", 1247 | "http-errors": "~1.7.2", 1248 | "mime": "1.6.0", 1249 | "ms": "2.1.1", 1250 | "on-finished": "~2.3.0", 1251 | "range-parser": "~1.2.1", 1252 | "statuses": "~1.5.0" 1253 | }, 1254 | "dependencies": { 1255 | "ms": { 1256 | "version": "2.1.1", 1257 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1258 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1259 | } 1260 | } 1261 | }, 1262 | "serve-static": { 1263 | "version": "1.14.1", 1264 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1265 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 1266 | "requires": { 1267 | "encodeurl": "~1.0.2", 1268 | "escape-html": "~1.0.3", 1269 | "parseurl": "~1.3.3", 1270 | "send": "0.17.1" 1271 | } 1272 | }, 1273 | "setprototypeof": { 1274 | "version": "1.1.1", 1275 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1276 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1277 | }, 1278 | "statuses": { 1279 | "version": "1.5.0", 1280 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1281 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1282 | }, 1283 | "toidentifier": { 1284 | "version": "1.0.0", 1285 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 1286 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 1287 | }, 1288 | "type-is": { 1289 | "version": "1.6.18", 1290 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1291 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1292 | "requires": { 1293 | "media-typer": "0.3.0", 1294 | "mime-types": "~2.1.24" 1295 | } 1296 | }, 1297 | "typescript": { 1298 | "version": "4.3.5", 1299 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", 1300 | "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", 1301 | "dev": true 1302 | }, 1303 | "unpipe": { 1304 | "version": "1.0.0", 1305 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1306 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1307 | }, 1308 | "utils-merge": { 1309 | "version": "1.0.1", 1310 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1311 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1312 | }, 1313 | "vary": { 1314 | "version": "1.1.2", 1315 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1316 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1317 | }, 1318 | "wrappy": { 1319 | "version": "1.0.2", 1320 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1321 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1322 | "dev": true 1323 | } 1324 | } 1325 | } 1326 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.14.5" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" 8 | integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== 9 | dependencies: 10 | "@babel/highlight" "^7.14.5" 11 | 12 | "@babel/helper-validator-identifier@^7.14.5": 13 | version "7.14.5" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" 15 | integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== 16 | 17 | "@babel/highlight@^7.14.5": 18 | version "7.14.5" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" 20 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.14.5" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@concordance/react@^2.0.0": 27 | version "2.0.0" 28 | resolved "https://registry.yarnpkg.com/@concordance/react/-/react-2.0.0.tgz#aef913f27474c53731f4fd79cc2f54897de90fde" 29 | integrity sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA== 30 | dependencies: 31 | arrify "^1.0.1" 32 | 33 | "@nodelib/fs.scandir@2.1.5": 34 | version "2.1.5" 35 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 36 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 37 | dependencies: 38 | "@nodelib/fs.stat" "2.0.5" 39 | run-parallel "^1.1.9" 40 | 41 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 42 | version "2.0.5" 43 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 44 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 45 | 46 | "@nodelib/fs.walk@^1.2.3": 47 | version "1.2.8" 48 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 49 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 50 | dependencies: 51 | "@nodelib/fs.scandir" "2.1.5" 52 | fastq "^1.6.0" 53 | 54 | "@sindresorhus/is@^0.14.0": 55 | version "0.14.0" 56 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" 57 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 58 | 59 | "@szmarczak/http-timer@^1.1.2": 60 | version "1.1.2" 61 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" 62 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 63 | dependencies: 64 | defer-to-connect "^1.0.1" 65 | 66 | "@types/minimist@^1.2.0": 67 | version "1.2.2" 68 | resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" 69 | integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== 70 | 71 | "@types/normalize-package-data@^2.4.0": 72 | version "2.4.1" 73 | resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" 74 | integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== 75 | 76 | acorn-walk@^8.0.0: 77 | version "8.1.1" 78 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" 79 | integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== 80 | 81 | acorn@^8.0.4: 82 | version "8.4.1" 83 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" 84 | integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== 85 | 86 | aggregate-error@^3.0.0: 87 | version "3.1.0" 88 | resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" 89 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 90 | dependencies: 91 | clean-stack "^2.0.0" 92 | indent-string "^4.0.0" 93 | 94 | ansi-align@^3.0.0: 95 | version "3.0.0" 96 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" 97 | integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== 98 | dependencies: 99 | string-width "^3.0.0" 100 | 101 | ansi-regex@^4.1.0: 102 | version "4.1.0" 103 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 104 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 105 | 106 | ansi-regex@^5.0.0: 107 | version "5.0.0" 108 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 109 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 110 | 111 | ansi-styles@^3.2.1: 112 | version "3.2.1" 113 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 114 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 115 | dependencies: 116 | color-convert "^1.9.0" 117 | 118 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 119 | version "4.3.0" 120 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 121 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 122 | dependencies: 123 | color-convert "^2.0.1" 124 | 125 | ansi-styles@^5.0.0: 126 | version "5.2.0" 127 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" 128 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== 129 | 130 | anymatch@~3.1.2: 131 | version "3.1.2" 132 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 133 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 134 | dependencies: 135 | normalize-path "^3.0.0" 136 | picomatch "^2.0.4" 137 | 138 | argparse@^1.0.7: 139 | version "1.0.10" 140 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 141 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 142 | dependencies: 143 | sprintf-js "~1.0.2" 144 | 145 | array-find-index@^1.0.1: 146 | version "1.0.2" 147 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 148 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= 149 | 150 | array-union@^2.1.0: 151 | version "2.1.0" 152 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 153 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 154 | 155 | arrgv@^1.0.2: 156 | version "1.0.2" 157 | resolved "https://registry.yarnpkg.com/arrgv/-/arrgv-1.0.2.tgz#025ed55a6a433cad9b604f8112fc4292715a6ec0" 158 | integrity sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw== 159 | 160 | arrify@^1.0.1: 161 | version "1.0.1" 162 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 163 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= 164 | 165 | arrify@^2.0.1: 166 | version "2.0.1" 167 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" 168 | integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== 169 | 170 | astral-regex@^2.0.0: 171 | version "2.0.0" 172 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 173 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 174 | 175 | ava@^3.15.0: 176 | version "3.15.0" 177 | resolved "https://registry.yarnpkg.com/ava/-/ava-3.15.0.tgz#a239658ab1de8a29a243cc902e6b42e4574de2f0" 178 | integrity sha512-HGAnk1SHPk4Sx6plFAUkzV/XC1j9+iQhOzt4vBly18/yo0AV8Oytx7mtJd/CR8igCJ5p160N/Oo/cNJi2uSeWA== 179 | dependencies: 180 | "@concordance/react" "^2.0.0" 181 | acorn "^8.0.4" 182 | acorn-walk "^8.0.0" 183 | ansi-styles "^5.0.0" 184 | arrgv "^1.0.2" 185 | arrify "^2.0.1" 186 | callsites "^3.1.0" 187 | chalk "^4.1.0" 188 | chokidar "^3.4.3" 189 | chunkd "^2.0.1" 190 | ci-info "^2.0.0" 191 | ci-parallel-vars "^1.0.1" 192 | clean-yaml-object "^0.1.0" 193 | cli-cursor "^3.1.0" 194 | cli-truncate "^2.1.0" 195 | code-excerpt "^3.0.0" 196 | common-path-prefix "^3.0.0" 197 | concordance "^5.0.1" 198 | convert-source-map "^1.7.0" 199 | currently-unhandled "^0.4.1" 200 | debug "^4.3.1" 201 | del "^6.0.0" 202 | emittery "^0.8.0" 203 | equal-length "^1.0.0" 204 | figures "^3.2.0" 205 | globby "^11.0.1" 206 | ignore-by-default "^2.0.0" 207 | import-local "^3.0.2" 208 | indent-string "^4.0.0" 209 | is-error "^2.2.2" 210 | is-plain-object "^5.0.0" 211 | is-promise "^4.0.0" 212 | lodash "^4.17.20" 213 | matcher "^3.0.0" 214 | md5-hex "^3.0.1" 215 | mem "^8.0.0" 216 | ms "^2.1.3" 217 | ora "^5.2.0" 218 | p-event "^4.2.0" 219 | p-map "^4.0.0" 220 | picomatch "^2.2.2" 221 | pkg-conf "^3.1.0" 222 | plur "^4.0.0" 223 | pretty-ms "^7.0.1" 224 | read-pkg "^5.2.0" 225 | resolve-cwd "^3.0.0" 226 | slash "^3.0.0" 227 | source-map-support "^0.5.19" 228 | stack-utils "^2.0.3" 229 | strip-ansi "^6.0.0" 230 | supertap "^2.0.0" 231 | temp-dir "^2.0.0" 232 | trim-off-newlines "^1.0.1" 233 | update-notifier "^5.0.1" 234 | write-file-atomic "^3.0.3" 235 | yargs "^16.2.0" 236 | 237 | balanced-match@^1.0.0: 238 | version "1.0.2" 239 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 240 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 241 | 242 | base64-js@^1.3.1: 243 | version "1.5.1" 244 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 245 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 246 | 247 | binary-extensions@^2.0.0: 248 | version "2.2.0" 249 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 250 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 251 | 252 | bl@^4.1.0: 253 | version "4.1.0" 254 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 255 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 256 | dependencies: 257 | buffer "^5.5.0" 258 | inherits "^2.0.4" 259 | readable-stream "^3.4.0" 260 | 261 | blueimp-md5@^2.10.0: 262 | version "2.18.0" 263 | resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.18.0.tgz#1152be1335f0c6b3911ed9e36db54f3e6ac52935" 264 | integrity sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q== 265 | 266 | boxen@^5.0.0: 267 | version "5.0.1" 268 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" 269 | integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== 270 | dependencies: 271 | ansi-align "^3.0.0" 272 | camelcase "^6.2.0" 273 | chalk "^4.1.0" 274 | cli-boxes "^2.2.1" 275 | string-width "^4.2.0" 276 | type-fest "^0.20.2" 277 | widest-line "^3.1.0" 278 | wrap-ansi "^7.0.0" 279 | 280 | brace-expansion@^1.1.7: 281 | version "1.1.11" 282 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 283 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 284 | dependencies: 285 | balanced-match "^1.0.0" 286 | concat-map "0.0.1" 287 | 288 | braces@^3.0.1, braces@~3.0.2: 289 | version "3.0.2" 290 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 291 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 292 | dependencies: 293 | fill-range "^7.0.1" 294 | 295 | buffer-from@^1.0.0: 296 | version "1.1.1" 297 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 298 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 299 | 300 | buffer@^5.5.0: 301 | version "5.7.1" 302 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 303 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 304 | dependencies: 305 | base64-js "^1.3.1" 306 | ieee754 "^1.1.13" 307 | 308 | cacheable-request@^6.0.0: 309 | version "6.1.0" 310 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 311 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 312 | dependencies: 313 | clone-response "^1.0.2" 314 | get-stream "^5.1.0" 315 | http-cache-semantics "^4.0.0" 316 | keyv "^3.0.0" 317 | lowercase-keys "^2.0.0" 318 | normalize-url "^4.1.0" 319 | responselike "^1.0.2" 320 | 321 | callsites@^3.1.0: 322 | version "3.1.0" 323 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 324 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 325 | 326 | camelcase-keys@^6.2.2: 327 | version "6.2.2" 328 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" 329 | integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== 330 | dependencies: 331 | camelcase "^5.3.1" 332 | map-obj "^4.0.0" 333 | quick-lru "^4.0.1" 334 | 335 | camelcase@^5.3.1: 336 | version "5.3.1" 337 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 338 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 339 | 340 | camelcase@^6.2.0: 341 | version "6.2.0" 342 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" 343 | integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== 344 | 345 | chalk@^2.0.0: 346 | version "2.4.2" 347 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 348 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 349 | dependencies: 350 | ansi-styles "^3.2.1" 351 | escape-string-regexp "^1.0.5" 352 | supports-color "^5.3.0" 353 | 354 | chalk@^4.1.0: 355 | version "4.1.1" 356 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" 357 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== 358 | dependencies: 359 | ansi-styles "^4.1.0" 360 | supports-color "^7.1.0" 361 | 362 | chokidar@^3.4.3: 363 | version "3.5.2" 364 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 365 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 366 | dependencies: 367 | anymatch "~3.1.2" 368 | braces "~3.0.2" 369 | glob-parent "~5.1.2" 370 | is-binary-path "~2.1.0" 371 | is-glob "~4.0.1" 372 | normalize-path "~3.0.0" 373 | readdirp "~3.6.0" 374 | optionalDependencies: 375 | fsevents "~2.3.2" 376 | 377 | chunkd@^2.0.1: 378 | version "2.0.1" 379 | resolved "https://registry.yarnpkg.com/chunkd/-/chunkd-2.0.1.tgz#49cd1d7b06992dc4f7fccd962fe2a101ee7da920" 380 | integrity sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ== 381 | 382 | ci-info@^2.0.0: 383 | version "2.0.0" 384 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" 385 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 386 | 387 | ci-parallel-vars@^1.0.1: 388 | version "1.0.1" 389 | resolved "https://registry.yarnpkg.com/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz#e87ff0625ccf9d286985b29b4ada8485ca9ffbc2" 390 | integrity sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg== 391 | 392 | clean-stack@^2.0.0: 393 | version "2.2.0" 394 | resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" 395 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 396 | 397 | clean-yaml-object@^0.1.0: 398 | version "0.1.0" 399 | resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" 400 | integrity sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g= 401 | 402 | cli-boxes@^2.2.1: 403 | version "2.2.1" 404 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" 405 | integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== 406 | 407 | cli-cursor@^3.1.0: 408 | version "3.1.0" 409 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 410 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 411 | dependencies: 412 | restore-cursor "^3.1.0" 413 | 414 | cli-spinners@^2.5.0: 415 | version "2.6.0" 416 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" 417 | integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== 418 | 419 | cli-truncate@^2.1.0: 420 | version "2.1.0" 421 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" 422 | integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== 423 | dependencies: 424 | slice-ansi "^3.0.0" 425 | string-width "^4.2.0" 426 | 427 | cliui@^7.0.2: 428 | version "7.0.4" 429 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 430 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 431 | dependencies: 432 | string-width "^4.2.0" 433 | strip-ansi "^6.0.0" 434 | wrap-ansi "^7.0.0" 435 | 436 | clone-response@^1.0.2: 437 | version "1.0.2" 438 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 439 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 440 | dependencies: 441 | mimic-response "^1.0.0" 442 | 443 | clone@^1.0.2: 444 | version "1.0.4" 445 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 446 | integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 447 | 448 | code-excerpt@^3.0.0: 449 | version "3.0.0" 450 | resolved "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-3.0.0.tgz#fcfb6748c03dba8431c19f5474747fad3f250f10" 451 | integrity sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw== 452 | dependencies: 453 | convert-to-spaces "^1.0.1" 454 | 455 | color-convert@^1.9.0: 456 | version "1.9.3" 457 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 458 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 459 | dependencies: 460 | color-name "1.1.3" 461 | 462 | color-convert@^2.0.1: 463 | version "2.0.1" 464 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 465 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 466 | dependencies: 467 | color-name "~1.1.4" 468 | 469 | color-name@1.1.3: 470 | version "1.1.3" 471 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 472 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 473 | 474 | color-name@~1.1.4: 475 | version "1.1.4" 476 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 477 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 478 | 479 | common-path-prefix@^3.0.0: 480 | version "3.0.0" 481 | resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" 482 | integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== 483 | 484 | concat-map@0.0.1: 485 | version "0.0.1" 486 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 487 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 488 | 489 | concordance@^5.0.1: 490 | version "5.0.4" 491 | resolved "https://registry.yarnpkg.com/concordance/-/concordance-5.0.4.tgz#9896073261adced72f88d60e4d56f8efc4bbbbd2" 492 | integrity sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw== 493 | dependencies: 494 | date-time "^3.1.0" 495 | esutils "^2.0.3" 496 | fast-diff "^1.2.0" 497 | js-string-escape "^1.0.1" 498 | lodash "^4.17.15" 499 | md5-hex "^3.0.1" 500 | semver "^7.3.2" 501 | well-known-symbols "^2.0.0" 502 | 503 | configstore@^5.0.1: 504 | version "5.0.1" 505 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" 506 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== 507 | dependencies: 508 | dot-prop "^5.2.0" 509 | graceful-fs "^4.1.2" 510 | make-dir "^3.0.0" 511 | unique-string "^2.0.0" 512 | write-file-atomic "^3.0.0" 513 | xdg-basedir "^4.0.0" 514 | 515 | convert-source-map@^1.7.0: 516 | version "1.8.0" 517 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" 518 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 519 | dependencies: 520 | safe-buffer "~5.1.1" 521 | 522 | convert-to-spaces@^1.0.1: 523 | version "1.0.2" 524 | resolved "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715" 525 | integrity sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU= 526 | 527 | cross-spawn@^7.0.3: 528 | version "7.0.3" 529 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 530 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 531 | dependencies: 532 | path-key "^3.1.0" 533 | shebang-command "^2.0.0" 534 | which "^2.0.1" 535 | 536 | crypto-random-string@^2.0.0: 537 | version "2.0.0" 538 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" 539 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 540 | 541 | currently-unhandled@^0.4.1: 542 | version "0.4.1" 543 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 544 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= 545 | dependencies: 546 | array-find-index "^1.0.1" 547 | 548 | date-time@^3.1.0: 549 | version "3.1.0" 550 | resolved "https://registry.yarnpkg.com/date-time/-/date-time-3.1.0.tgz#0d1e934d170579f481ed8df1e2b8ff70ee845e1e" 551 | integrity sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg== 552 | dependencies: 553 | time-zone "^1.0.0" 554 | 555 | debug@^4.3.1: 556 | version "4.3.2" 557 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 558 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== 559 | dependencies: 560 | ms "2.1.2" 561 | 562 | decamelize-keys@^1.1.0: 563 | version "1.1.0" 564 | resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" 565 | integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= 566 | dependencies: 567 | decamelize "^1.1.0" 568 | map-obj "^1.0.0" 569 | 570 | decamelize@^1.1.0, decamelize@^1.2.0: 571 | version "1.2.0" 572 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 573 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 574 | 575 | decompress-response@^3.3.0: 576 | version "3.3.0" 577 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" 578 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= 579 | dependencies: 580 | mimic-response "^1.0.0" 581 | 582 | deep-extend@^0.6.0: 583 | version "0.6.0" 584 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 585 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 586 | 587 | defaults@^1.0.3: 588 | version "1.0.3" 589 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 590 | integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= 591 | dependencies: 592 | clone "^1.0.2" 593 | 594 | defer-to-connect@^1.0.1: 595 | version "1.1.3" 596 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" 597 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== 598 | 599 | del@^6.0.0: 600 | version "6.0.0" 601 | resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" 602 | integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== 603 | dependencies: 604 | globby "^11.0.1" 605 | graceful-fs "^4.2.4" 606 | is-glob "^4.0.1" 607 | is-path-cwd "^2.2.0" 608 | is-path-inside "^3.0.2" 609 | p-map "^4.0.0" 610 | rimraf "^3.0.2" 611 | slash "^3.0.0" 612 | 613 | dir-glob@^3.0.1: 614 | version "3.0.1" 615 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 616 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 617 | dependencies: 618 | path-type "^4.0.0" 619 | 620 | dot-prop@^5.2.0: 621 | version "5.3.0" 622 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" 623 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== 624 | dependencies: 625 | is-obj "^2.0.0" 626 | 627 | duplexer3@^0.1.4: 628 | version "0.1.4" 629 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 630 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 631 | 632 | emittery@^0.8.0: 633 | version "0.8.1" 634 | resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" 635 | integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== 636 | 637 | emoji-regex@^7.0.1: 638 | version "7.0.3" 639 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 640 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 641 | 642 | emoji-regex@^8.0.0: 643 | version "8.0.0" 644 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 645 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 646 | 647 | end-of-stream@^1.1.0: 648 | version "1.4.4" 649 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 650 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 651 | dependencies: 652 | once "^1.4.0" 653 | 654 | equal-length@^1.0.0: 655 | version "1.0.1" 656 | resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c" 657 | integrity sha1-IcoRLUirJLTh5//A5TOdMf38J0w= 658 | 659 | error-ex@^1.3.1: 660 | version "1.3.2" 661 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 662 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 663 | dependencies: 664 | is-arrayish "^0.2.1" 665 | 666 | escalade@^3.1.1: 667 | version "3.1.1" 668 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 669 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 670 | 671 | escape-goat@^2.0.0: 672 | version "2.1.1" 673 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" 674 | integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== 675 | 676 | escape-string-regexp@^1.0.5: 677 | version "1.0.5" 678 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 679 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 680 | 681 | escape-string-regexp@^2.0.0: 682 | version "2.0.0" 683 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" 684 | integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== 685 | 686 | escape-string-regexp@^4.0.0: 687 | version "4.0.0" 688 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 689 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 690 | 691 | esprima@^4.0.0: 692 | version "4.0.1" 693 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 694 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 695 | 696 | esutils@^2.0.3: 697 | version "2.0.3" 698 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 699 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 700 | 701 | execa@^5.0.0: 702 | version "5.1.1" 703 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" 704 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 705 | dependencies: 706 | cross-spawn "^7.0.3" 707 | get-stream "^6.0.0" 708 | human-signals "^2.1.0" 709 | is-stream "^2.0.0" 710 | merge-stream "^2.0.0" 711 | npm-run-path "^4.0.1" 712 | onetime "^5.1.2" 713 | signal-exit "^3.0.3" 714 | strip-final-newline "^2.0.0" 715 | 716 | fast-diff@^1.2.0: 717 | version "1.2.0" 718 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 719 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 720 | 721 | fast-glob@^3.1.1: 722 | version "3.2.7" 723 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" 724 | integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== 725 | dependencies: 726 | "@nodelib/fs.stat" "^2.0.2" 727 | "@nodelib/fs.walk" "^1.2.3" 728 | glob-parent "^5.1.2" 729 | merge2 "^1.3.0" 730 | micromatch "^4.0.4" 731 | 732 | fastq@^1.6.0: 733 | version "1.11.1" 734 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" 735 | integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== 736 | dependencies: 737 | reusify "^1.0.4" 738 | 739 | figures@^3.2.0: 740 | version "3.2.0" 741 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" 742 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== 743 | dependencies: 744 | escape-string-regexp "^1.0.5" 745 | 746 | fill-range@^7.0.1: 747 | version "7.0.1" 748 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 749 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 750 | dependencies: 751 | to-regex-range "^5.0.1" 752 | 753 | find-up@^3.0.0: 754 | version "3.0.0" 755 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 756 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 757 | dependencies: 758 | locate-path "^3.0.0" 759 | 760 | find-up@^4.0.0, find-up@^4.1.0: 761 | version "4.1.0" 762 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 763 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 764 | dependencies: 765 | locate-path "^5.0.0" 766 | path-exists "^4.0.0" 767 | 768 | fs.realpath@^1.0.0: 769 | version "1.0.0" 770 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 771 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 772 | 773 | fsevents@~2.3.2: 774 | version "2.3.2" 775 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 776 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 777 | 778 | function-bind@^1.1.1: 779 | version "1.1.1" 780 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 781 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 782 | 783 | get-caller-file@^2.0.5: 784 | version "2.0.5" 785 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 786 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 787 | 788 | get-stream@^4.1.0: 789 | version "4.1.0" 790 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 791 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 792 | dependencies: 793 | pump "^3.0.0" 794 | 795 | get-stream@^5.1.0: 796 | version "5.2.0" 797 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 798 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 799 | dependencies: 800 | pump "^3.0.0" 801 | 802 | get-stream@^6.0.0: 803 | version "6.0.1" 804 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 805 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 806 | 807 | glob-parent@^5.1.2, glob-parent@~5.1.2: 808 | version "5.1.2" 809 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 810 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 811 | dependencies: 812 | is-glob "^4.0.1" 813 | 814 | glob@^7.1.3: 815 | version "7.1.7" 816 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 817 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 818 | dependencies: 819 | fs.realpath "^1.0.0" 820 | inflight "^1.0.4" 821 | inherits "2" 822 | minimatch "^3.0.4" 823 | once "^1.3.0" 824 | path-is-absolute "^1.0.0" 825 | 826 | global-dirs@^3.0.0: 827 | version "3.0.0" 828 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" 829 | integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== 830 | dependencies: 831 | ini "2.0.0" 832 | 833 | globby@^11.0.1: 834 | version "11.0.4" 835 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" 836 | integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== 837 | dependencies: 838 | array-union "^2.1.0" 839 | dir-glob "^3.0.1" 840 | fast-glob "^3.1.1" 841 | ignore "^5.1.4" 842 | merge2 "^1.3.0" 843 | slash "^3.0.0" 844 | 845 | got@^9.6.0: 846 | version "9.6.0" 847 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" 848 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 849 | dependencies: 850 | "@sindresorhus/is" "^0.14.0" 851 | "@szmarczak/http-timer" "^1.1.2" 852 | cacheable-request "^6.0.0" 853 | decompress-response "^3.3.0" 854 | duplexer3 "^0.1.4" 855 | get-stream "^4.1.0" 856 | lowercase-keys "^1.0.1" 857 | mimic-response "^1.0.1" 858 | p-cancelable "^1.0.0" 859 | to-readable-stream "^1.0.0" 860 | url-parse-lax "^3.0.0" 861 | 862 | graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4: 863 | version "4.2.6" 864 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 865 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 866 | 867 | hard-rejection@^2.1.0: 868 | version "2.1.0" 869 | resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" 870 | integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== 871 | 872 | has-flag@^3.0.0: 873 | version "3.0.0" 874 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 875 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 876 | 877 | has-flag@^4.0.0: 878 | version "4.0.0" 879 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 880 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 881 | 882 | has-yarn@^2.1.0: 883 | version "2.1.0" 884 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" 885 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== 886 | 887 | has@^1.0.3: 888 | version "1.0.3" 889 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 890 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 891 | dependencies: 892 | function-bind "^1.1.1" 893 | 894 | hosted-git-info@^2.1.4: 895 | version "2.8.9" 896 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 897 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 898 | 899 | hosted-git-info@^4.0.1: 900 | version "4.0.2" 901 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" 902 | integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== 903 | dependencies: 904 | lru-cache "^6.0.0" 905 | 906 | http-cache-semantics@^4.0.0: 907 | version "4.1.0" 908 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 909 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 910 | 911 | human-signals@^2.1.0: 912 | version "2.1.0" 913 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 914 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 915 | 916 | ieee754@^1.1.13: 917 | version "1.2.1" 918 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 919 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 920 | 921 | ignore-by-default@^2.0.0: 922 | version "2.0.0" 923 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-2.0.0.tgz#537092018540640459569fe7c8c7a408af581146" 924 | integrity sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA== 925 | 926 | ignore@^5.1.4: 927 | version "5.1.8" 928 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" 929 | integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== 930 | 931 | import-lazy@^2.1.0: 932 | version "2.1.0" 933 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 934 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 935 | 936 | import-local@^3.0.2: 937 | version "3.0.2" 938 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" 939 | integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== 940 | dependencies: 941 | pkg-dir "^4.2.0" 942 | resolve-cwd "^3.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 | indent-string@^4.0.0: 950 | version "4.0.0" 951 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" 952 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 953 | 954 | inflight@^1.0.4: 955 | version "1.0.6" 956 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 957 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 958 | dependencies: 959 | once "^1.3.0" 960 | wrappy "1" 961 | 962 | inherits@2, inherits@^2.0.3, inherits@^2.0.4: 963 | version "2.0.4" 964 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 965 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 966 | 967 | ini@2.0.0: 968 | version "2.0.0" 969 | resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" 970 | integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== 971 | 972 | ini@~1.3.0: 973 | version "1.3.8" 974 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 975 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 976 | 977 | irregular-plurals@^3.2.0: 978 | version "3.3.0" 979 | resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.3.0.tgz#67d0715d4361a60d9fd9ee80af3881c631a31ee2" 980 | integrity sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g== 981 | 982 | is-arrayish@^0.2.1: 983 | version "0.2.1" 984 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 985 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 986 | 987 | is-binary-path@~2.1.0: 988 | version "2.1.0" 989 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 990 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 991 | dependencies: 992 | binary-extensions "^2.0.0" 993 | 994 | is-ci@^2.0.0: 995 | version "2.0.0" 996 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" 997 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 998 | dependencies: 999 | ci-info "^2.0.0" 1000 | 1001 | is-core-module@^2.2.0: 1002 | version "2.4.0" 1003 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" 1004 | integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== 1005 | dependencies: 1006 | has "^1.0.3" 1007 | 1008 | is-error@^2.2.2: 1009 | version "2.2.2" 1010 | resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.2.tgz#c10ade187b3c93510c5470a5567833ee25649843" 1011 | integrity sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg== 1012 | 1013 | is-extglob@^2.1.1: 1014 | version "2.1.1" 1015 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1016 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1017 | 1018 | is-fullwidth-code-point@^2.0.0: 1019 | version "2.0.0" 1020 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1021 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1022 | 1023 | is-fullwidth-code-point@^3.0.0: 1024 | version "3.0.0" 1025 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1026 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1027 | 1028 | is-glob@^4.0.1, is-glob@~4.0.1: 1029 | version "4.0.1" 1030 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1031 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1032 | dependencies: 1033 | is-extglob "^2.1.1" 1034 | 1035 | is-installed-globally@^0.4.0: 1036 | version "0.4.0" 1037 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" 1038 | integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== 1039 | dependencies: 1040 | global-dirs "^3.0.0" 1041 | is-path-inside "^3.0.2" 1042 | 1043 | is-interactive@^1.0.0: 1044 | version "1.0.0" 1045 | resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" 1046 | integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== 1047 | 1048 | is-npm@^5.0.0: 1049 | version "5.0.0" 1050 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" 1051 | integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== 1052 | 1053 | is-number@^7.0.0: 1054 | version "7.0.0" 1055 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1056 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1057 | 1058 | is-obj@^2.0.0: 1059 | version "2.0.0" 1060 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 1061 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 1062 | 1063 | is-path-cwd@^2.2.0: 1064 | version "2.2.0" 1065 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" 1066 | integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== 1067 | 1068 | is-path-inside@^3.0.2: 1069 | version "3.0.3" 1070 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 1071 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1072 | 1073 | is-plain-obj@^1.1.0: 1074 | version "1.1.0" 1075 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 1076 | integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= 1077 | 1078 | is-plain-object@^5.0.0: 1079 | version "5.0.0" 1080 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" 1081 | integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 1082 | 1083 | is-promise@^4.0.0: 1084 | version "4.0.0" 1085 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" 1086 | integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== 1087 | 1088 | is-stream@^2.0.0: 1089 | version "2.0.0" 1090 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" 1091 | integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== 1092 | 1093 | is-typedarray@^1.0.0: 1094 | version "1.0.0" 1095 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1096 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 1097 | 1098 | is-unicode-supported@^0.1.0: 1099 | version "0.1.0" 1100 | resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" 1101 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== 1102 | 1103 | is-yarn-global@^0.3.0: 1104 | version "0.3.0" 1105 | resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" 1106 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== 1107 | 1108 | isexe@^2.0.0: 1109 | version "2.0.0" 1110 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1111 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1112 | 1113 | js-string-escape@^1.0.1: 1114 | version "1.0.1" 1115 | resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" 1116 | integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8= 1117 | 1118 | js-tokens@^4.0.0: 1119 | version "4.0.0" 1120 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1121 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1122 | 1123 | js-yaml@^3.14.0: 1124 | version "3.14.1" 1125 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1126 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1127 | dependencies: 1128 | argparse "^1.0.7" 1129 | esprima "^4.0.0" 1130 | 1131 | json-buffer@3.0.0: 1132 | version "3.0.0" 1133 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" 1134 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 1135 | 1136 | json-parse-better-errors@^1.0.1: 1137 | version "1.0.2" 1138 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1139 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1140 | 1141 | json-parse-even-better-errors@^2.3.0: 1142 | version "2.3.1" 1143 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 1144 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 1145 | 1146 | keyv@^3.0.0: 1147 | version "3.1.0" 1148 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 1149 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 1150 | dependencies: 1151 | json-buffer "3.0.0" 1152 | 1153 | kind-of@^6.0.3: 1154 | version "6.0.3" 1155 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 1156 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 1157 | 1158 | latest-version@^5.1.0: 1159 | version "5.1.0" 1160 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" 1161 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== 1162 | dependencies: 1163 | package-json "^6.3.0" 1164 | 1165 | lines-and-columns@^1.1.6: 1166 | version "1.1.6" 1167 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" 1168 | integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 1169 | 1170 | load-json-file@^5.2.0: 1171 | version "5.3.0" 1172 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" 1173 | integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== 1174 | dependencies: 1175 | graceful-fs "^4.1.15" 1176 | parse-json "^4.0.0" 1177 | pify "^4.0.1" 1178 | strip-bom "^3.0.0" 1179 | type-fest "^0.3.0" 1180 | 1181 | locate-path@^3.0.0: 1182 | version "3.0.0" 1183 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1184 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1185 | dependencies: 1186 | p-locate "^3.0.0" 1187 | path-exists "^3.0.0" 1188 | 1189 | locate-path@^5.0.0: 1190 | version "5.0.0" 1191 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1192 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1193 | dependencies: 1194 | p-locate "^4.1.0" 1195 | 1196 | lodash@^4.17.15, lodash@^4.17.20: 1197 | version "4.17.21" 1198 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1199 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1200 | 1201 | log-symbols@^4.1.0: 1202 | version "4.1.0" 1203 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" 1204 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== 1205 | dependencies: 1206 | chalk "^4.1.0" 1207 | is-unicode-supported "^0.1.0" 1208 | 1209 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 1210 | version "1.0.1" 1211 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 1212 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 1213 | 1214 | lowercase-keys@^2.0.0: 1215 | version "2.0.0" 1216 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 1217 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 1218 | 1219 | lru-cache@^6.0.0: 1220 | version "6.0.0" 1221 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1222 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1223 | dependencies: 1224 | yallist "^4.0.0" 1225 | 1226 | make-dir@^3.0.0: 1227 | version "3.1.0" 1228 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1229 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 1230 | dependencies: 1231 | semver "^6.0.0" 1232 | 1233 | map-age-cleaner@^0.1.3: 1234 | version "0.1.3" 1235 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" 1236 | integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== 1237 | dependencies: 1238 | p-defer "^1.0.0" 1239 | 1240 | map-obj@^1.0.0: 1241 | version "1.0.1" 1242 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 1243 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= 1244 | 1245 | map-obj@^4.0.0: 1246 | version "4.2.1" 1247 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" 1248 | integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== 1249 | 1250 | matcher@^3.0.0: 1251 | version "3.0.0" 1252 | resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" 1253 | integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== 1254 | dependencies: 1255 | escape-string-regexp "^4.0.0" 1256 | 1257 | md5-hex@^3.0.1: 1258 | version "3.0.1" 1259 | resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c" 1260 | integrity sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw== 1261 | dependencies: 1262 | blueimp-md5 "^2.10.0" 1263 | 1264 | mem@^8.0.0: 1265 | version "8.1.1" 1266 | resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" 1267 | integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== 1268 | dependencies: 1269 | map-age-cleaner "^0.1.3" 1270 | mimic-fn "^3.1.0" 1271 | 1272 | meow@^9.0.0: 1273 | version "9.0.0" 1274 | resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" 1275 | integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== 1276 | dependencies: 1277 | "@types/minimist" "^1.2.0" 1278 | camelcase-keys "^6.2.2" 1279 | decamelize "^1.2.0" 1280 | decamelize-keys "^1.1.0" 1281 | hard-rejection "^2.1.0" 1282 | minimist-options "4.1.0" 1283 | normalize-package-data "^3.0.0" 1284 | read-pkg-up "^7.0.1" 1285 | redent "^3.0.0" 1286 | trim-newlines "^3.0.0" 1287 | type-fest "^0.18.0" 1288 | yargs-parser "^20.2.3" 1289 | 1290 | merge-stream@^2.0.0: 1291 | version "2.0.0" 1292 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1293 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1294 | 1295 | merge2@^1.3.0: 1296 | version "1.4.1" 1297 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1298 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1299 | 1300 | micromatch@^4.0.4: 1301 | version "4.0.4" 1302 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 1303 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 1304 | dependencies: 1305 | braces "^3.0.1" 1306 | picomatch "^2.2.3" 1307 | 1308 | mimic-fn@^2.1.0: 1309 | version "2.1.0" 1310 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1311 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1312 | 1313 | mimic-fn@^3.1.0: 1314 | version "3.1.0" 1315 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" 1316 | integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== 1317 | 1318 | mimic-response@^1.0.0, mimic-response@^1.0.1: 1319 | version "1.0.1" 1320 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 1321 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 1322 | 1323 | min-indent@^1.0.0: 1324 | version "1.0.1" 1325 | resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" 1326 | integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== 1327 | 1328 | minimatch@^3.0.4: 1329 | version "3.0.4" 1330 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1331 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1332 | dependencies: 1333 | brace-expansion "^1.1.7" 1334 | 1335 | minimist-options@4.1.0: 1336 | version "4.1.0" 1337 | resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" 1338 | integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== 1339 | dependencies: 1340 | arrify "^1.0.1" 1341 | is-plain-obj "^1.1.0" 1342 | kind-of "^6.0.3" 1343 | 1344 | minimist@^1.2.0: 1345 | version "1.2.5" 1346 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1347 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1348 | 1349 | ms@2.1.2: 1350 | version "2.1.2" 1351 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1352 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1353 | 1354 | ms@^2.1.3: 1355 | version "2.1.3" 1356 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1357 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1358 | 1359 | normalize-package-data@^2.5.0: 1360 | version "2.5.0" 1361 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1362 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1363 | dependencies: 1364 | hosted-git-info "^2.1.4" 1365 | resolve "^1.10.0" 1366 | semver "2 || 3 || 4 || 5" 1367 | validate-npm-package-license "^3.0.1" 1368 | 1369 | normalize-package-data@^3.0.0: 1370 | version "3.0.2" 1371 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz#cae5c410ae2434f9a6c1baa65d5bc3b9366c8699" 1372 | integrity sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg== 1373 | dependencies: 1374 | hosted-git-info "^4.0.1" 1375 | resolve "^1.20.0" 1376 | semver "^7.3.4" 1377 | validate-npm-package-license "^3.0.1" 1378 | 1379 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1380 | version "3.0.0" 1381 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1382 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1383 | 1384 | normalize-url@^4.1.0: 1385 | version "4.5.1" 1386 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" 1387 | integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== 1388 | 1389 | npm-run-path@^4.0.1: 1390 | version "4.0.1" 1391 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 1392 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 1393 | dependencies: 1394 | path-key "^3.0.0" 1395 | 1396 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 1397 | version "1.4.0" 1398 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1399 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1400 | dependencies: 1401 | wrappy "1" 1402 | 1403 | onetime@^5.1.0, onetime@^5.1.2: 1404 | version "5.1.2" 1405 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1406 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1407 | dependencies: 1408 | mimic-fn "^2.1.0" 1409 | 1410 | ora@^5.2.0: 1411 | version "5.4.1" 1412 | resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" 1413 | integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== 1414 | dependencies: 1415 | bl "^4.1.0" 1416 | chalk "^4.1.0" 1417 | cli-cursor "^3.1.0" 1418 | cli-spinners "^2.5.0" 1419 | is-interactive "^1.0.0" 1420 | is-unicode-supported "^0.1.0" 1421 | log-symbols "^4.1.0" 1422 | strip-ansi "^6.0.0" 1423 | wcwidth "^1.0.1" 1424 | 1425 | p-cancelable@^1.0.0: 1426 | version "1.1.0" 1427 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 1428 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 1429 | 1430 | p-defer@^1.0.0: 1431 | version "1.0.0" 1432 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 1433 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= 1434 | 1435 | p-event@^4.2.0: 1436 | version "4.2.0" 1437 | resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" 1438 | integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== 1439 | dependencies: 1440 | p-timeout "^3.1.0" 1441 | 1442 | p-finally@^1.0.0: 1443 | version "1.0.0" 1444 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1445 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1446 | 1447 | p-limit@^2.0.0, p-limit@^2.2.0: 1448 | version "2.3.0" 1449 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1450 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1451 | dependencies: 1452 | p-try "^2.0.0" 1453 | 1454 | p-locate@^3.0.0: 1455 | version "3.0.0" 1456 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1457 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1458 | dependencies: 1459 | p-limit "^2.0.0" 1460 | 1461 | p-locate@^4.1.0: 1462 | version "4.1.0" 1463 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1464 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1465 | dependencies: 1466 | p-limit "^2.2.0" 1467 | 1468 | p-map@^4.0.0: 1469 | version "4.0.0" 1470 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" 1471 | integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== 1472 | dependencies: 1473 | aggregate-error "^3.0.0" 1474 | 1475 | p-timeout@^3.1.0: 1476 | version "3.2.0" 1477 | resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" 1478 | integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== 1479 | dependencies: 1480 | p-finally "^1.0.0" 1481 | 1482 | p-try@^2.0.0: 1483 | version "2.2.0" 1484 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1485 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1486 | 1487 | package-json@^6.3.0: 1488 | version "6.5.0" 1489 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" 1490 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== 1491 | dependencies: 1492 | got "^9.6.0" 1493 | registry-auth-token "^4.0.0" 1494 | registry-url "^5.0.0" 1495 | semver "^6.2.0" 1496 | 1497 | parse-json@^4.0.0: 1498 | version "4.0.0" 1499 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1500 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 1501 | dependencies: 1502 | error-ex "^1.3.1" 1503 | json-parse-better-errors "^1.0.1" 1504 | 1505 | parse-json@^5.0.0: 1506 | version "5.2.0" 1507 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 1508 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 1509 | dependencies: 1510 | "@babel/code-frame" "^7.0.0" 1511 | error-ex "^1.3.1" 1512 | json-parse-even-better-errors "^2.3.0" 1513 | lines-and-columns "^1.1.6" 1514 | 1515 | parse-ms@^2.1.0: 1516 | version "2.1.0" 1517 | resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" 1518 | integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== 1519 | 1520 | path-exists@^3.0.0: 1521 | version "3.0.0" 1522 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1523 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1524 | 1525 | path-exists@^4.0.0: 1526 | version "4.0.0" 1527 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1528 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1529 | 1530 | path-is-absolute@^1.0.0: 1531 | version "1.0.1" 1532 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1533 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1534 | 1535 | path-key@^3.0.0, path-key@^3.1.0: 1536 | version "3.1.1" 1537 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1538 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1539 | 1540 | path-parse@^1.0.6: 1541 | version "1.0.7" 1542 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1543 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1544 | 1545 | path-type@^4.0.0: 1546 | version "4.0.0" 1547 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1548 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1549 | 1550 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: 1551 | version "2.3.0" 1552 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1553 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1554 | 1555 | pify@^4.0.1: 1556 | version "4.0.1" 1557 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" 1558 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== 1559 | 1560 | pkg-conf@^3.1.0: 1561 | version "3.1.0" 1562 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" 1563 | integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== 1564 | dependencies: 1565 | find-up "^3.0.0" 1566 | load-json-file "^5.2.0" 1567 | 1568 | pkg-dir@^4.2.0: 1569 | version "4.2.0" 1570 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1571 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1572 | dependencies: 1573 | find-up "^4.0.0" 1574 | 1575 | plur@^4.0.0: 1576 | version "4.0.0" 1577 | resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84" 1578 | integrity sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg== 1579 | dependencies: 1580 | irregular-plurals "^3.2.0" 1581 | 1582 | prepend-http@^2.0.0: 1583 | version "2.0.0" 1584 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 1585 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 1586 | 1587 | pretty-ms@^7.0.1: 1588 | version "7.0.1" 1589 | resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" 1590 | integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== 1591 | dependencies: 1592 | parse-ms "^2.1.0" 1593 | 1594 | pump@^3.0.0: 1595 | version "3.0.0" 1596 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1597 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1598 | dependencies: 1599 | end-of-stream "^1.1.0" 1600 | once "^1.3.1" 1601 | 1602 | pupa@^2.1.1: 1603 | version "2.1.1" 1604 | resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" 1605 | integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== 1606 | dependencies: 1607 | escape-goat "^2.0.0" 1608 | 1609 | queue-microtask@^1.2.2: 1610 | version "1.2.3" 1611 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1612 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1613 | 1614 | quick-lru@^4.0.1: 1615 | version "4.0.1" 1616 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" 1617 | integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== 1618 | 1619 | rc@^1.2.8: 1620 | version "1.2.8" 1621 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 1622 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 1623 | dependencies: 1624 | deep-extend "^0.6.0" 1625 | ini "~1.3.0" 1626 | minimist "^1.2.0" 1627 | strip-json-comments "~2.0.1" 1628 | 1629 | read-pkg-up@^7.0.1: 1630 | version "7.0.1" 1631 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" 1632 | integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== 1633 | dependencies: 1634 | find-up "^4.1.0" 1635 | read-pkg "^5.2.0" 1636 | type-fest "^0.8.1" 1637 | 1638 | read-pkg@^5.2.0: 1639 | version "5.2.0" 1640 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" 1641 | integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== 1642 | dependencies: 1643 | "@types/normalize-package-data" "^2.4.0" 1644 | normalize-package-data "^2.5.0" 1645 | parse-json "^5.0.0" 1646 | type-fest "^0.6.0" 1647 | 1648 | readable-stream@^3.4.0: 1649 | version "3.6.0" 1650 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 1651 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 1652 | dependencies: 1653 | inherits "^2.0.3" 1654 | string_decoder "^1.1.1" 1655 | util-deprecate "^1.0.1" 1656 | 1657 | readdirp@~3.6.0: 1658 | version "3.6.0" 1659 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1660 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1661 | dependencies: 1662 | picomatch "^2.2.1" 1663 | 1664 | redent@^3.0.0: 1665 | version "3.0.0" 1666 | resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" 1667 | integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== 1668 | dependencies: 1669 | indent-string "^4.0.0" 1670 | strip-indent "^3.0.0" 1671 | 1672 | registry-auth-token@^4.0.0: 1673 | version "4.2.1" 1674 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" 1675 | integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== 1676 | dependencies: 1677 | rc "^1.2.8" 1678 | 1679 | registry-url@^5.0.0: 1680 | version "5.1.0" 1681 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" 1682 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== 1683 | dependencies: 1684 | rc "^1.2.8" 1685 | 1686 | require-directory@^2.1.1: 1687 | version "2.1.1" 1688 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1689 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1690 | 1691 | resolve-cwd@^3.0.0: 1692 | version "3.0.0" 1693 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" 1694 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 1695 | dependencies: 1696 | resolve-from "^5.0.0" 1697 | 1698 | resolve-from@^5.0.0: 1699 | version "5.0.0" 1700 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1701 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1702 | 1703 | resolve@^1.10.0, resolve@^1.20.0: 1704 | version "1.20.0" 1705 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1706 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1707 | dependencies: 1708 | is-core-module "^2.2.0" 1709 | path-parse "^1.0.6" 1710 | 1711 | responselike@^1.0.2: 1712 | version "1.0.2" 1713 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" 1714 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= 1715 | dependencies: 1716 | lowercase-keys "^1.0.0" 1717 | 1718 | restore-cursor@^3.1.0: 1719 | version "3.1.0" 1720 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 1721 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 1722 | dependencies: 1723 | onetime "^5.1.0" 1724 | signal-exit "^3.0.2" 1725 | 1726 | reusify@^1.0.4: 1727 | version "1.0.4" 1728 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1729 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1730 | 1731 | rimraf@^3.0.2: 1732 | version "3.0.2" 1733 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1734 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1735 | dependencies: 1736 | glob "^7.1.3" 1737 | 1738 | run-parallel@^1.1.9: 1739 | version "1.2.0" 1740 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1741 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1742 | dependencies: 1743 | queue-microtask "^1.2.2" 1744 | 1745 | safe-buffer@~5.1.1: 1746 | version "5.1.2" 1747 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1748 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1749 | 1750 | safe-buffer@~5.2.0: 1751 | version "5.2.1" 1752 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1753 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1754 | 1755 | semver-diff@^3.1.1: 1756 | version "3.1.1" 1757 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" 1758 | integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== 1759 | dependencies: 1760 | semver "^6.3.0" 1761 | 1762 | "semver@2 || 3 || 4 || 5": 1763 | version "5.7.1" 1764 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1765 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1766 | 1767 | semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: 1768 | version "6.3.0" 1769 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1770 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1771 | 1772 | semver@^7.3.2, semver@^7.3.4: 1773 | version "7.3.5" 1774 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1775 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1776 | dependencies: 1777 | lru-cache "^6.0.0" 1778 | 1779 | serialize-error@^7.0.1: 1780 | version "7.0.1" 1781 | resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" 1782 | integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== 1783 | dependencies: 1784 | type-fest "^0.13.1" 1785 | 1786 | shebang-command@^2.0.0: 1787 | version "2.0.0" 1788 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1789 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1790 | dependencies: 1791 | shebang-regex "^3.0.0" 1792 | 1793 | shebang-regex@^3.0.0: 1794 | version "3.0.0" 1795 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1796 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1797 | 1798 | signal-exit@^3.0.2, signal-exit@^3.0.3: 1799 | version "3.0.3" 1800 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1801 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1802 | 1803 | slash@^3.0.0: 1804 | version "3.0.0" 1805 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1806 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1807 | 1808 | slice-ansi@^3.0.0: 1809 | version "3.0.0" 1810 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" 1811 | integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== 1812 | dependencies: 1813 | ansi-styles "^4.0.0" 1814 | astral-regex "^2.0.0" 1815 | is-fullwidth-code-point "^3.0.0" 1816 | 1817 | source-map-support@^0.5.19: 1818 | version "0.5.19" 1819 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 1820 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 1821 | dependencies: 1822 | buffer-from "^1.0.0" 1823 | source-map "^0.6.0" 1824 | 1825 | source-map@^0.6.0: 1826 | version "0.6.1" 1827 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1828 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1829 | 1830 | spdx-correct@^3.0.0: 1831 | version "3.1.1" 1832 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1833 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1834 | dependencies: 1835 | spdx-expression-parse "^3.0.0" 1836 | spdx-license-ids "^3.0.0" 1837 | 1838 | spdx-exceptions@^2.1.0: 1839 | version "2.3.0" 1840 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1841 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1842 | 1843 | spdx-expression-parse@^3.0.0: 1844 | version "3.0.1" 1845 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1846 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1847 | dependencies: 1848 | spdx-exceptions "^2.1.0" 1849 | spdx-license-ids "^3.0.0" 1850 | 1851 | spdx-license-ids@^3.0.0: 1852 | version "3.0.9" 1853 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" 1854 | integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== 1855 | 1856 | sprintf-js@~1.0.2: 1857 | version "1.0.3" 1858 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1859 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1860 | 1861 | stack-utils@^2.0.3: 1862 | version "2.0.3" 1863 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" 1864 | integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== 1865 | dependencies: 1866 | escape-string-regexp "^2.0.0" 1867 | 1868 | string-width@^3.0.0: 1869 | version "3.1.0" 1870 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1871 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1872 | dependencies: 1873 | emoji-regex "^7.0.1" 1874 | is-fullwidth-code-point "^2.0.0" 1875 | strip-ansi "^5.1.0" 1876 | 1877 | string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: 1878 | version "4.2.2" 1879 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 1880 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 1881 | dependencies: 1882 | emoji-regex "^8.0.0" 1883 | is-fullwidth-code-point "^3.0.0" 1884 | strip-ansi "^6.0.0" 1885 | 1886 | string_decoder@^1.1.1: 1887 | version "1.3.0" 1888 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1889 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1890 | dependencies: 1891 | safe-buffer "~5.2.0" 1892 | 1893 | strip-ansi@^5.1.0: 1894 | version "5.2.0" 1895 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1896 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1897 | dependencies: 1898 | ansi-regex "^4.1.0" 1899 | 1900 | strip-ansi@^6.0.0: 1901 | version "6.0.0" 1902 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1903 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1904 | dependencies: 1905 | ansi-regex "^5.0.0" 1906 | 1907 | strip-bom@^3.0.0: 1908 | version "3.0.0" 1909 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1910 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1911 | 1912 | strip-final-newline@^2.0.0: 1913 | version "2.0.0" 1914 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 1915 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 1916 | 1917 | strip-indent@^3.0.0: 1918 | version "3.0.0" 1919 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" 1920 | integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== 1921 | dependencies: 1922 | min-indent "^1.0.0" 1923 | 1924 | strip-json-comments@~2.0.1: 1925 | version "2.0.1" 1926 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1927 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1928 | 1929 | supertap@^2.0.0: 1930 | version "2.0.0" 1931 | resolved "https://registry.yarnpkg.com/supertap/-/supertap-2.0.0.tgz#8b587d6e14b8e885fa5183a9c45abf429feb9f7f" 1932 | integrity sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA== 1933 | dependencies: 1934 | arrify "^2.0.1" 1935 | indent-string "^4.0.0" 1936 | js-yaml "^3.14.0" 1937 | serialize-error "^7.0.1" 1938 | strip-ansi "^6.0.0" 1939 | 1940 | supports-color@^5.3.0: 1941 | version "5.5.0" 1942 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1943 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1944 | dependencies: 1945 | has-flag "^3.0.0" 1946 | 1947 | supports-color@^7.1.0: 1948 | version "7.2.0" 1949 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1950 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1951 | dependencies: 1952 | has-flag "^4.0.0" 1953 | 1954 | temp-dir@^2.0.0: 1955 | version "2.0.0" 1956 | resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" 1957 | integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== 1958 | 1959 | time-zone@^1.0.0: 1960 | version "1.0.0" 1961 | resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" 1962 | integrity sha1-mcW/VZWJZq9tBtg73zgA3IL67F0= 1963 | 1964 | to-readable-stream@^1.0.0: 1965 | version "1.0.0" 1966 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" 1967 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 1968 | 1969 | to-regex-range@^5.0.1: 1970 | version "5.0.1" 1971 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1972 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1973 | dependencies: 1974 | is-number "^7.0.0" 1975 | 1976 | trim-newlines@^3.0.0: 1977 | version "3.0.1" 1978 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" 1979 | integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== 1980 | 1981 | trim-off-newlines@^1.0.1: 1982 | version "1.0.1" 1983 | resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" 1984 | integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= 1985 | 1986 | type-fest@^0.13.1: 1987 | version "0.13.1" 1988 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" 1989 | integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== 1990 | 1991 | type-fest@^0.18.0: 1992 | version "0.18.1" 1993 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" 1994 | integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== 1995 | 1996 | type-fest@^0.20.2: 1997 | version "0.20.2" 1998 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1999 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2000 | 2001 | type-fest@^0.3.0: 2002 | version "0.3.1" 2003 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" 2004 | integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== 2005 | 2006 | type-fest@^0.6.0: 2007 | version "0.6.0" 2008 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" 2009 | integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== 2010 | 2011 | type-fest@^0.8.1: 2012 | version "0.8.1" 2013 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 2014 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 2015 | 2016 | typedarray-to-buffer@^3.1.5: 2017 | version "3.1.5" 2018 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 2019 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 2020 | dependencies: 2021 | is-typedarray "^1.0.0" 2022 | 2023 | unique-string@^2.0.0: 2024 | version "2.0.0" 2025 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" 2026 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== 2027 | dependencies: 2028 | crypto-random-string "^2.0.0" 2029 | 2030 | update-notifier@^5.0.1: 2031 | version "5.1.0" 2032 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" 2033 | integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== 2034 | dependencies: 2035 | boxen "^5.0.0" 2036 | chalk "^4.1.0" 2037 | configstore "^5.0.1" 2038 | has-yarn "^2.1.0" 2039 | import-lazy "^2.1.0" 2040 | is-ci "^2.0.0" 2041 | is-installed-globally "^0.4.0" 2042 | is-npm "^5.0.0" 2043 | is-yarn-global "^0.3.0" 2044 | latest-version "^5.1.0" 2045 | pupa "^2.1.1" 2046 | semver "^7.3.4" 2047 | semver-diff "^3.1.1" 2048 | xdg-basedir "^4.0.0" 2049 | 2050 | url-parse-lax@^3.0.0: 2051 | version "3.0.0" 2052 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" 2053 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= 2054 | dependencies: 2055 | prepend-http "^2.0.0" 2056 | 2057 | util-deprecate@^1.0.1: 2058 | version "1.0.2" 2059 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2060 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 2061 | 2062 | validate-npm-package-license@^3.0.1: 2063 | version "3.0.4" 2064 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 2065 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 2066 | dependencies: 2067 | spdx-correct "^3.0.0" 2068 | spdx-expression-parse "^3.0.0" 2069 | 2070 | wcwidth@^1.0.1: 2071 | version "1.0.1" 2072 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" 2073 | integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 2074 | dependencies: 2075 | defaults "^1.0.3" 2076 | 2077 | well-known-symbols@^2.0.0: 2078 | version "2.0.0" 2079 | resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5" 2080 | integrity sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q== 2081 | 2082 | which@^2.0.1: 2083 | version "2.0.2" 2084 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2085 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2086 | dependencies: 2087 | isexe "^2.0.0" 2088 | 2089 | widest-line@^3.1.0: 2090 | version "3.1.0" 2091 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" 2092 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== 2093 | dependencies: 2094 | string-width "^4.0.0" 2095 | 2096 | wrap-ansi@^7.0.0: 2097 | version "7.0.0" 2098 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2099 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2100 | dependencies: 2101 | ansi-styles "^4.0.0" 2102 | string-width "^4.1.0" 2103 | strip-ansi "^6.0.0" 2104 | 2105 | wrappy@1: 2106 | version "1.0.2" 2107 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2108 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2109 | 2110 | write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: 2111 | version "3.0.3" 2112 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" 2113 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 2114 | dependencies: 2115 | imurmurhash "^0.1.4" 2116 | is-typedarray "^1.0.0" 2117 | signal-exit "^3.0.2" 2118 | typedarray-to-buffer "^3.1.5" 2119 | 2120 | xdg-basedir@^4.0.0: 2121 | version "4.0.0" 2122 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" 2123 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 2124 | 2125 | y18n@^5.0.5: 2126 | version "5.0.8" 2127 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 2128 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 2129 | 2130 | yallist@^4.0.0: 2131 | version "4.0.0" 2132 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2133 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2134 | 2135 | yargs-parser@^20.2.2, yargs-parser@^20.2.3: 2136 | version "20.2.9" 2137 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 2138 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 2139 | 2140 | yargs@^16.2.0: 2141 | version "16.2.0" 2142 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 2143 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 2144 | dependencies: 2145 | cliui "^7.0.2" 2146 | escalade "^3.1.1" 2147 | get-caller-file "^2.0.5" 2148 | require-directory "^2.1.1" 2149 | string-width "^4.2.0" 2150 | y18n "^5.0.5" 2151 | yargs-parser "^20.2.2" 2152 | --------------------------------------------------------------------------------