diff --git a/blank_project/README.md b/blank_project/README.md index 65cd3ca8f..3e458745b 100755 --- a/blank_project/README.md +++ b/blank_project/README.md @@ -11,22 +11,54 @@ ## Template for NEAR dapps ### Requirements ##### IMPORTANT: Make sure you have the latest version of NEAR Shell and Node Version > 10.x -1. node and npm -2. near shell + +1. [Node.js](https://nodejs.org/en/download/package-manager/) +2. (optional) near-shell + ``` npm i -g near-shell ``` -3.(optional) install yarn to build +3. (optional) yarn ``` npm i -g yarn ``` ### To run on NEAR testnet -#### Step 1: Create account for the contract and deploy the contract. + +```bash +npm install && npm dev +``` + +with yarn: + +```bash +yarn && yarn dev +``` + +The server that starts is for static assets and by default serves them to http://localhost:1234. Navigate there in your browser to see the app running! + +NOTE: Both contract and client-side code will auto-reload once you change source files. + +### To run tests + +```bash +npm test +``` + +with yarn: + +```bash +yarn test +``` + +### Deploy + +#### Step 1: Create account for the contract + You'll now want to authorize NEAR shell on your NEAR account, which will allow NEAR Shell to deploy contracts on your NEAR account's behalf \(and spend your NEAR account balance to do so\). Type the command `near login` which should return a url: -```bash +``` Please navigate to this url and follow the instructions to log in: https://wallet.nearprotocol.com/login/?title=NEAR+Shell&public_key={publicKey} ``` @@ -43,34 +75,36 @@ Once you have entered your account ID, it will display the following message: This message is not an error, it just means that it will create a public key for you. #### Step 2: -Modify src/config.js line that sets the contractName. Set it to id from step 1. + +Modify `src/config.js` line that sets the account name of the contract. Set it to the account id from step 1. + +NOTE: When you use [create-near-app](https://github.com/nearprotocol/create-near-app) to create the project it'll infer and pre-populate name of contract based on project folder name. + ```javascript -(function() { - const CONTRACT_NAME = 'react-template'; /* TODO: Change this to your contract's name! */ - const DEFAULT_ENV = 'development'; - ... -})(); +const CONTRACT_NAME = 'react-template'; /* TODO: Change this to your contract's name! */ +const DEFAULT_ENV = 'development'; +... ``` #### Step 3: -Finally, run the command in your terminal. -``` -npm install && npm start + +Check the scripts in the package.json, for frontend and backend both, run the command: + +```bash +npm run deploy ``` + with yarn: -``` -yarn install && yarn start -``` -The server that starts is for static assets and by default serves them to localhost:5000. Navigate there in your browser to see the app running! -### Deploy -Check the scripts in the package.json, for frontend and backend both, run the command: ```bash -npm run(yarn) deploy +yarn deploy ``` +NOTE: This uses [gh-pages](https://github.com/tschaub/gh-pages) to publish resulting website on GitHub pages. It'll only work if project already has repository set up on GitHub. Feel free to modify `deploy:pages` script in `package.json` to deploy elsewhere. + ### To Explore - `assembly/main.ts` for the contract code - `src/index.html` for the front-end HTML -- `src/main.js` for the JavaScript front-end code and how to integrate contracts \ No newline at end of file +- `src/main.js` for the JavaScript front-end code and how to integrate contracts +- `src/main.test.js` for the JavaScript integration tests of smart contract \ No newline at end of file diff --git a/blank_project/package.json b/blank_project/package.json index 17d1034c7..2528471d9 100644 --- a/blank_project/package.json +++ b/blank_project/package.json @@ -12,7 +12,7 @@ "prestart": "npm run build:contract && npm run dev:deploy:contract", "start": "CONTRACT_NAME=$(cat neardev/dev-account) parcel src/index.html", "dev": "nodemon --watch assembly -e ts --exec 'npm run start'", - "test": "npm run build:contract && jest test --env=near-shell/test_environment" + "test": "npm run build:contract && jest test --env=near-shell/test_environment --runInBand" }, "devDependencies": { "gh-pages": "^2.2.0", diff --git a/blank_project/src/config.js b/blank_project/src/config.js index 851d9fcfb..77833df5c 100644 --- a/blank_project/src/config.js +++ b/blank_project/src/config.js @@ -1,4 +1,4 @@ -const CONTRACT_NAME = process.env.CONTRACT_NAME ||'nearapp'; /* TODO: fill this in! */ +const CONTRACT_NAME = process.env.CONTRACT_NAME ||'near-blank-project'; function getConfig(env) { switch (env) { diff --git a/blank_react_project/README.md b/blank_react_project/README.md index 35d2fbe55..d5d2486b7 100644 --- a/blank_react_project/README.md +++ b/blank_react_project/README.md @@ -9,30 +9,56 @@
## Template for NEAR dapps - -### Features -* Create NEAR dapps with a React frontend 🐲 -* We got Gulp! 💦 - ### Requirements ##### IMPORTANT: Make sure you have the latest version of NEAR Shell and Node Version > 10.x -1. node and npm -2. near shell + +1. [Node.js](https://nodejs.org/en/download/package-manager/) +2. (optional) near-shell + ``` npm i -g near-shell ``` -3.(optional) install yarn to build +3. (optional) yarn ``` npm i -g yarn ``` +### To run on NEAR testnet + +```bash +npm install && npm dev +``` + +with yarn: + +```bash +yarn && yarn dev +``` + +The server that starts is for static assets and by default serves them to http://localhost:1234. Navigate there in your browser to see the app running! + +NOTE: Both contract and client-side code will auto-reload once you change source files. + +### To run tests + +```bash +npm test +``` + +with yarn: + +```bash +yarn test +``` + +### Deploy + +#### Step 1: Create account for the contract -### To run on testnet -#### Step 1: Create account for the contract and deploy the contract. You'll now want to authorize NEAR shell on your NEAR account, which will allow NEAR Shell to deploy contracts on your NEAR account's behalf \(and spend your NEAR account balance to do so\). Type the command `near login` which should return a url: -```bash +``` Please navigate to this url and follow the instructions to log in: https://wallet.nearprotocol.com/login/?title=NEAR+Shell&public_key={publicKey} ``` @@ -49,41 +75,38 @@ Once you have entered your account ID, it will display the following message: This message is not an error, it just means that it will create a public key for you. #### Step 2: -Modify src/config.js line that sets the contractName. Set it to id from step 1. + +Modify `src/config.js` line that sets the account name of the contract. Set it to the account id from step 1. + +NOTE: When you use [create-near-app](https://github.com/nearprotocol/create-near-app) to create the project it'll infer and pre-populate name of contract based on project folder name. + ```javascript -(function() { - const CONTRACT_NAME = 'react-template'; /* TODO: Change this to your contract's name! */ - const DEFAULT_ENV = 'development'; - ... -})(); +const CONTRACT_NAME = 'react-template'; /* TODO: Change this to your contract's name! */ +const DEFAULT_ENV = 'development'; +... ``` #### Step 3: -Finally, run the command in your terminal. -``` -npm install && npm start -``` -with yarn: -``` -yarn install && yarn start -``` -The server that starts is for static assets and by default serves them to localhost:3000. Navigate there in your browser to see the app running! -### Deploy Check the scripts in the package.json, for frontend and backend both, run the command: + ```bash -npm run(yarn) deploy +npm run deploy ``` -### Test -For test file src/App.test.js, it works for the template after finishing step 3 above. If smart contract and index.js change, user should change to their functions to test. The command is: +with yarn: + ```bash -npm run(yarn) test +yarn deploy ``` +NOTE: This uses [gh-pages](https://github.com/tschaub/gh-pages) to publish resulting website on GitHub pages. It'll only work if project already has repository set up on GitHub. Feel free to modify `deploy:pages` script in `package.json` to deploy elsewhere. + ### To Explore - `assembly/main.ts` for the contract code -- `public/index.html` for the front-end HTML +- `src/index.html` for the front-end HTML - `src/index.js` for the JavaScript front-end code and how to integrate contracts -- `src/App.js` for the first react component +- `src/App.js` for the main React component +- `src/main.test.js` for the JavaScript integration tests of smart contract +- `src/App.test.js` for the main React component tests \ No newline at end of file diff --git a/blank_react_project/package.json b/blank_react_project/package.json index 0e8642a29..8a0a010e2 100644 --- a/blank_react_project/package.json +++ b/blank_react_project/package.json @@ -1,5 +1,5 @@ { - "name": "blank_react_template", + "name": "near-blank-project", "version": "0.1.0", "scripts": { "build": "npm run build:contract && npm run build:web", @@ -12,7 +12,7 @@ "prestart": "npm run build:contract && npm run dev:deploy:contract", "start": "CONTRACT_NAME=$(cat neardev/dev-account) parcel src/index.html", "dev": "nodemon --watch assembly -e ts --exec 'npm run start'", - "test": "npm run build:contract && jest test --env=near-shell/test_environment" + "test": "npm run build:contract && jest test --env=near-shell/test_environment --runInBand" }, "devDependencies": { "@babel/preset-env": "^7.8.4", @@ -59,4 +59,4 @@ "last 1 safari version" ] } -} \ No newline at end of file +} diff --git a/blank_react_project/src/config.js b/blank_react_project/src/config.js index 851d9fcfb..77833df5c 100644 --- a/blank_react_project/src/config.js +++ b/blank_react_project/src/config.js @@ -1,4 +1,4 @@ -const CONTRACT_NAME = process.env.CONTRACT_NAME ||'nearapp'; /* TODO: fill this in! */ +const CONTRACT_NAME = process.env.CONTRACT_NAME ||'near-blank-project'; function getConfig(env) { switch (env) { diff --git a/blank_rust_project/README.md b/blank_rust_project/README.md index 99c8cbec4..73c7d56e3 100755 --- a/blank_rust_project/README.md +++ b/blank_rust_project/README.md @@ -10,29 +10,55 @@ ## Template for NEAR dapps ### Requirements -##### IMPORTANT: Make sure you have the latest version of NEAR Shell, Node Version > 10.x, and latest rust. -1. node and npm -2. near shell +##### IMPORTANT: Make sure you have the latest version of NEAR Shell and Node Version > 10.x + +1. [Node.js](https://nodejs.org/en/download/package-manager/) +2. (optional) near-shell + ``` npm i -g near-shell ``` -3. Make sure you have the latest rust +3. (optional) yarn ``` -rustup update -rustup target add wasm32-unknown-unknown +npm i -g yarn ``` +### To run on NEAR testnet -4.(optional) install yarn to build +```bash +npm install && npm dev ``` -npm i -g yarn + +with yarn: + +```bash +yarn && yarn dev ``` -### To run on NEAR testnet -#### Step 1: Create account for the contract and deploy the contract. + +The server that starts is for static assets and by default serves them to http://localhost:1234. Navigate there in your browser to see the app running! + +NOTE: Both contract and client-side code will auto-reload once you change source files. + +### To run tests + +```bash +npm test +``` + +with yarn: + +```bash +yarn test +``` + +### Deploy + +#### Step 1: Create account for the contract + You'll now want to authorize NEAR shell on your NEAR account, which will allow NEAR Shell to deploy contracts on your NEAR account's behalf \(and spend your NEAR account balance to do so\). Type the command `near login` which should return a url: -```bash +``` Please navigate to this url and follow the instructions to log in: https://wallet.nearprotocol.com/login/?title=NEAR+Shell&public_key={publicKey} ``` @@ -49,40 +75,36 @@ Once you have entered your account ID, it will display the following message: This message is not an error, it just means that it will create a public key for you. #### Step 2: -Modify src/config.js line that sets the contractName. Set it to id from step 1. + +Modify `src/config.js` line that sets the account name of the contract. Set it to the account id from step 1. + +NOTE: When you use [create-near-app](https://github.com/nearprotocol/create-near-app) to create the project it'll infer and pre-populate name of contract based on project folder name. + ```javascript -(function() { - const CONTRACT_NAME = 'react-template'; /* TODO: Change this to your contract's name! */ - const DEFAULT_ENV = 'development'; - ... -})(); +const CONTRACT_NAME = 'react-template'; /* TODO: Change this to your contract's name! */ +const DEFAULT_ENV = 'development'; +... ``` #### Step 3: -Finally, run the command in your terminal. -``` -npm install && npm start + +Check the scripts in the package.json, for frontend and backend both, run the command: + +```bash +npm run deploy ``` + with yarn: -``` -yarn install && yarn start -``` -The server that starts is for static assets and by default serves them to localhost:4000. Navigate there in your browser to see the app running! -### Deploy -Check the scripts in the package.json, for frontend and backend both, run the command: ```bash -npm run(yarn) deploy +yarn deploy ``` +NOTE: This uses [gh-pages](https://github.com/tschaub/gh-pages) to publish resulting website on GitHub pages. It'll only work if project already has repository set up on GitHub. Feel free to modify `deploy:pages` script in `package.json` to deploy elsewhere. + ### To Explore -- `contract/src/lib.rs` for the contract code +- `contract/src/lib.rs` for the contract code and unit tests - `src/index.html` for the front-end HTML - `src/main.js` for the JavaScript front-end code and how to integrate contracts - -### Testing -To test run: -```bash -cargo test --package status-message -- --nocapture -``` +- `src/main.test.js` for the JavaScript integration tests of smart contract \ No newline at end of file diff --git a/index.js b/index.js index ea2b64188..cb65ff9ba 100755 --- a/index.js +++ b/index.js @@ -1,6 +1,7 @@ #!/usr/bin/env node -const fs = require('fs'); const yargs = require('yargs'); +const { basename, resolve } = require('path'); +const replaceInFiles = require('replace-in-files'); const ncp = require('ncp').ncp; ncp.limit = 16; @@ -22,45 +23,42 @@ const createProject = { type: 'string', required: true }), - handler: (argv) => exitOnError(create_Project(argv)) + handler: (argv) => exitOnError(doCreateProject(argv)) }; -const create_Project = async function(options) { +const doCreateProject = async function(options) { if (!options.vanilla && options.rust) { console.log('Blank project for rust contract with react is not available yet.'); return; } + const rustPiece = options.rust ? '_rust' : ''; const reactPiece = options.vanilla ? '' : '_react'; const templateDir = `/blank${rustPiece}${reactPiece}_project`; - // Need to wait for the copy to finish, otherwise next tasks do not find files. const projectDir = options.projectDir; let sourceDir = __dirname + templateDir; + console.log(`Copying files to new project directory (${projectDir}) from template source (${sourceDir}).`); + // Need to wait for the copy to finish, otherwise next tasks do not find files. const copyDirFn = () => { return new Promise(resolve => { - ncp (sourceDir, options.projectDir, response => resolve(response)); - });}; - await copyDirFn(); - let path = projectDir + '/package.json'; - let index = projectDir.lastIndexOf('/'); - let name = index > 0 - ? projectDir.slice(index+1, ) - : projectDir; - fs.readFile(path,function(err, data){ - if (err) { - throw 'could not read file: ' + err; - } - let json = JSON.parse(data); - json['name'] = name; - fs.writeFile(path,JSON.stringify(json, null, 4),function(err) { - if (err) { - throw 'error writing file: ' + err; - }else { - console.log('wrote successfully!'); - } + ncp(sourceDir, projectDir, response => resolve(response)); }); + }; + await copyDirFn(); + + let projectName = basename(resolve(projectDir)); + + await replaceInFiles({ + files: [ + // NOTE: These can use globs if necessary later + `${projectDir}/package.json`, + `${projectDir}/src/config.js`, + ], + from: 'near-blank-project', + to: projectName }); + console.log('Copying project files complete.'); }; diff --git a/package.json b/package.json index 9d2cb2cdc..0928a683d 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ }, "dependencies": { "ncp": "^2.0.0", + "replace-in-files": "^2.0.3", "yargs": "^15.0.2" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index cfc697861..c9014fd99 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,11 +18,56 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "13.7.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.0.tgz#b417deda18cf8400f278733499ad5547ed1abec4" + integrity sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ== + acorn-jsx@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" @@ -82,6 +127,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -92,6 +142,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +binaryextensions@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.2.0.tgz#e7c6ba82d4f5f5758c26078fe8eea28881233311" + integrity sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -100,6 +155,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -145,6 +207,11 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -202,6 +269,13 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -209,6 +283,14 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +editions@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/editions/-/editions-2.3.0.tgz#47f2d5309340bce93ab5eb6ad755b9e90ff825e4" + integrity sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA== + dependencies: + errlop "^2.0.0" + semver "^6.3.0" + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -219,6 +301,16 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +errlop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.0.0.tgz#52b97d35da1b0795e2647b5d2d3a46d17776f55a" + integrity sha512-z00WIrQhtOMUnjdTG0O4f6hMG64EVccVDBy2WwgjcF8S4UB1exGYuc2OFwmdQmsJwLQVEIHWHPCz/omXXgAZHw== + +es6-promisify@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.2.tgz#525c23725b8510f5f1f2feb5a1fbad93a93e29b4" + integrity sha512-eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -339,6 +431,17 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-glob@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82" + integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -349,6 +452,13 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastq@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" + integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + dependencies: + reusify "^1.0.0" + figures@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" @@ -363,6 +473,13 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -400,7 +517,7 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -glob-parent@^5.0.0: +glob-parent@^5.0.0, glob-parent@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== @@ -426,6 +543,20 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -443,6 +574,11 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + import-fresh@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" @@ -510,6 +646,11 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -520,6 +661,15 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +istextorbinary@^2.5.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.6.0.tgz#60776315fb0fa3999add276c02c69557b9ca28ab" + integrity sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA== + dependencies: + binaryextensions "^2.1.2" + editions "^2.2.0" + textextensions "^2.5.0" + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -563,6 +713,19 @@ lodash@^4.17.14, lodash@^4.17.15: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +merge2@^1.2.3, merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -684,6 +847,16 @@ path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.5: + version "2.2.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" + integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -704,6 +877,17 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +replace-in-files@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/replace-in-files/-/replace-in-files-2.0.3.tgz#2e20f3a06fb50abb9e77e689da6a0cf2bbd70f17" + integrity sha512-wm9kg+WhKQ10CFaCS9jvUtgw9JnaPilm4TqSRq57H06v5EgX7hTrr/qwgyvq3G+IeNhmr6VTW84LvfnpZfq5/g== + dependencies: + co "^4.6.0" + es6-promisify "^6.0.2" + globby "^10.0.1" + istextorbinary "^2.5.1" + lodash "^4.17.15" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -727,6 +911,11 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +reusify@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -741,6 +930,11 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + rxjs@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" @@ -758,7 +952,7 @@ semver@^5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.1.2: +semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -785,6 +979,11 @@ signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -858,6 +1057,11 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +textextensions@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" + integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== + through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -870,6 +1074,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"