From e2bde4c6ca838ffea845a6c106b1278791eae88d Mon Sep 17 00:00:00 2001 From: onirenaud Date: Thu, 22 Oct 2020 18:09:14 +0900 Subject: [PATCH 01/60] fix error --- .gitignore | 1 + lib/index.js | 3 --- lib/utils/check-for-update.js | 4 ++-- lib/utils/messages.js | 2 -- 4 files changed, 3 insertions(+), 7 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..40b878d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index d91e8bc..e9af016 100644 --- a/lib/index.js +++ b/lib/index.js @@ -6,9 +6,6 @@ const chalk = require('chalk'); const messages = require('./utils/messages'); const checkForUpdate = require('./utils/check-for-update'); const processExit = require('./utils/process-exit'); -const cra = require('./stacks/cra'); -const gatsby = require('./stacks/gatsby'); -const native = require('./stacks/native'); const next = require('./stacks/next'); // todo add gatsby and native diff --git a/lib/utils/check-for-update.js b/lib/utils/check-for-update.js index 06117f5..380feb3 100644 --- a/lib/utils/check-for-update.js +++ b/lib/utils/check-for-update.js @@ -15,8 +15,8 @@ module.exports = async function checkForUpdate() { switch (semver.compare(current, latest)) { case -1: const command = getInstallCmd() === 'yarn' - ? 'yarn create r3f-app my-app ' - : 'npx create-r3f-app my-app '; + ? 'yarn create r3f-app my-app ' + : 'npx create-r3f-app my-app '; console.log(` —— New update available, run the following ${chalk.bold(command)} diff --git a/lib/utils/messages.js b/lib/utils/messages.js index 65d8437..d601bad 100644 --- a/lib/utils/messages.js +++ b/lib/utils/messages.js @@ -34,8 +34,6 @@ exports.missingProjectName = function () { For example: ${chalk.cyan(program.name)} next ${chalk.green('example-www')} - ${chalk.cyan(program.name)} gatsby ${chalk.green('example-www')} - ${chalk.cyan(program.name)} cra ${chalk.green('example-www')} ${chalk.cyan(program.name)} native ${chalk.green('example-app')} ${chalk.yellow( '"com.example.app"', )} From da72fa11f68c9b1600e0769baba4bf7abfa92bab Mon Sep 17 00:00:00 2001 From: onirenaud Date: Thu, 22 Oct 2020 18:09:40 +0900 Subject: [PATCH 02/60] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 60129c8..79eb246 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "0.0.1", + "version": "0.0.2", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 55886f72f114243fe88c3c648a472875b989ba03 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Thu, 22 Oct 2020 18:16:26 +0900 Subject: [PATCH 03/60] default to sass --- docs/setup/USAGE.md | 2 +- lib/index.js | 8 +++----- lib/stacks/gatsby.js | 4 ++-- lib/stacks/next.js | 8 ++++---- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/docs/setup/USAGE.md b/docs/setup/USAGE.md index 92e6338..da2c731 100644 --- a/docs/setup/USAGE.md +++ b/docs/setup/USAGE.md @@ -7,7 +7,7 @@ Create R3F App supports 1 stack: NextJS with full server capabilities and static rendering. It uses [r3f-next-starter](https://github.com/RenaudROHLINGER/r3f-next-starter) as the base config. ```bash -yarn create r3f-app next example-www +yarn create r3f-app next example-www ``` !> The `project-name` will be generated using the path you defined. diff --git a/lib/index.js b/lib/index.js index e9af016..cf7c43b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -12,9 +12,7 @@ const next = require('./stacks/next'); const appTypes = ['next']; module.exports = async function createR3fApp({ projectName, appType }) { - console.log(chalk.bold(chalk.green(` - ———— Welcome to create-r3f-app - `))); + console.log(chalk.bold(chalk.blue(`Welcome to Create-R3F-App !!`))); await checkForUpdate(); @@ -30,8 +28,8 @@ module.exports = async function createR3fApp({ projectName, appType }) { process.exit(1); } - if ((appType === 'next' || appType === 'gatsby') && process.argv[4] === 'sass') { - appStyle = 'sass'; + if ((appType === 'next' || appType === 'gatsby') && process.argv[4] === 'styled') { + appStyle = 'styled'; } if (fs.existsSync(projectName)) { diff --git a/lib/stacks/gatsby.js b/lib/stacks/gatsby.js index 6d463f5..e9712f3 100644 --- a/lib/stacks/gatsby.js +++ b/lib/stacks/gatsby.js @@ -7,8 +7,8 @@ const messages = require('../utils/messages'); const output = require('../utils/output'); module.exports = async function gatsby(projectName, projectPath, projectStyle) { - const isSass = projectStyle === 'sass'; - const starter = `https://github.com/RenaudROHLINGER/r3f-gatsby-starter#${isSass ? 'master' : 'styled'}`; + const isStyled = projectStyle === 'styled'; + const starter = `https://github.com/RenaudROHLINGER/r3f-gatsby-starter#${isSass ? 'styled' : 'master'}`; output.info( `🚀 Creating ${chalk.bold(chalk.green(projectName))} using ${chalk.bold( diff --git a/lib/stacks/next.js b/lib/stacks/next.js index c730637..a6c9f95 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -35,11 +35,11 @@ async function next(projectName, projectPath, projectStyle) { )}...`, ); - const isSass = projectStyle === 'sass'; + const isStyled = projectStyle === 'styled'; const hostedInfo = hostedGitInfo.fromUrl('https://github.com/RenaudROHLINGER/r3f-next-starter'); - const url = hostedInfo.https({ noCommittish: isSass, noGitPlus: true }); - const branch = isSass ? [] : ['--branch', 'styled']; - const recursive = isSass ? ['--recursive'] : []; + const url = hostedInfo.https({ noCommittish: !isStyled, noGitPlus: true }); + const branch = isStyled ? ['--branch', 'styled'] : []; + const recursive = isStyled ? [] : ['--recursive']; const args = [ 'clone', url, From baca233b249a50a5a5fc616b22b68dcff54cf250 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Thu, 22 Oct 2020 18:16:52 +0900 Subject: [PATCH 04/60] v0.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 79eb246..b73f055 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "0.0.2", + "version": "0.0.4", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 442abc53b0e75df9205a00da97436c1d12146e9f Mon Sep 17 00:00:00 2001 From: onirenaud Date: Thu, 22 Oct 2020 18:23:38 +0900 Subject: [PATCH 05/60] update --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1e07ca8..e4f8127 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,21 @@ ## Create R3f app -[![npm version](https://badge.fury.io/js/create-r3f-app.svg)](https://badge.fury.io/js/create-r3f-app) +[(https://badge.fury.io/js/create-r3f-app.svg)](https://badge.fury.io/js/create-r3f-app) ## Getting Started Usage (choose your stack, your app name and style library): + ```bash -npx create-r3f-app my-app +yarn create r3f-app my-app ``` or ```bash -yarn create r3f-app my-app +npx create-r3f-app my-app ``` ## Documentation From 93320b2e3524d76af2266f492d0f91d480b2df16 Mon Sep 17 00:00:00 2001 From: Renaud ROHLINGER Date: Thu, 22 Oct 2020 18:24:22 +0900 Subject: [PATCH 06/60] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e4f8127..4005b4a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## Create R3f app -[(https://badge.fury.io/js/create-r3f-app.svg)](https://badge.fury.io/js/create-r3f-app) +[![yarn version](https://badge.fury.io/js/create-r3f-app.svg)](https://badge.fury.io/js/create-r3f-app) ## Getting Started From 18c6b9b8fa164425612d935de0c6c5d97441aadb Mon Sep 17 00:00:00 2001 From: Alaric BARAOU Date: Fri, 30 Oct 2020 00:04:59 +0100 Subject: [PATCH 07/60] fix (node:11344) UnhandledPromiseRejectionWarning --- lib/stacks/native.js | 2 +- lib/stacks/next.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/stacks/native.js b/lib/stacks/native.js index 3cf754d..1b41904 100644 --- a/lib/stacks/native.js +++ b/lib/stacks/native.js @@ -24,7 +24,7 @@ const install = async (projectName) => { resolve(); }) .catch(() => reject(new Error(`Install step: ${installCmd} installation failed`))); - }); + }).catch((error) => output.error(error.message)); }; const rename = async (projectName, bundleId) => { diff --git a/lib/stacks/next.js b/lib/stacks/next.js index a6c9f95..d3d7df2 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -25,7 +25,7 @@ const install = async (projectName) => { resolve(); }) .catch(() => reject(new Error(`${installCmd} installation failed`))); - }); + }).catch((error) => output.error(error.message)); }; async function next(projectName, projectPath, projectStyle) { From 5b5048134dd2cd43e7202ccb830ae7901f155ecf Mon Sep 17 00:00:00 2001 From: onirenaud Date: Fri, 30 Oct 2020 14:58:39 +0900 Subject: [PATCH 08/60] update readme --- README.md | 5 +++-- lib/index.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e4f8127..037778a 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,16 @@ Usage (choose your stack, your app name and style library): ```bash -yarn create r3f-app my-app +yarn create r3f-app my-app ``` or ```bash -npx create-r3f-app my-app +npx create-r3f-app my-app ``` ## Documentation +- Default style is sass [https://renaudrohlinger.github.io/create-r3f-app](https://renaudrohlinger.github.io/create-r3f-app). diff --git a/lib/index.js b/lib/index.js index cf7c43b..00ca063 100644 --- a/lib/index.js +++ b/lib/index.js @@ -12,7 +12,7 @@ const next = require('./stacks/next'); const appTypes = ['next']; module.exports = async function createR3fApp({ projectName, appType }) { - console.log(chalk.bold(chalk.blue(`Welcome to Create-R3F-App !!`))); + console.log(chalk.bold(chalk.blue(`Welcome. Project's generation started using create-R3F-App 🐱`))); await checkForUpdate(); diff --git a/package.json b/package.json index b73f055..b22f844 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "0.0.4", + "version": "0.0.5", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 844b34d377a6f24b52839653fd5de29367b69e25 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Fri, 30 Oct 2020 15:04:42 +0900 Subject: [PATCH 09/60] 0.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b22f844..9b44cb0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "0.0.5", + "version": "0.1.0", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From f1d3076d4e551ebfda0a45939eb18ea744c70901 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Fri, 30 Oct 2020 15:12:36 +0900 Subject: [PATCH 10/60] v1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9b44cb0..3c5d638 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "0.1.0", + "version": "1.0.0", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From b12671718e9d5868085ed8adb3528fad2a29b672 Mon Sep 17 00:00:00 2001 From: Alaric BARAOU Date: Fri, 6 Nov 2020 22:30:45 +0100 Subject: [PATCH 11/60] added command-exists package in order to fix error message if ussing with npx on windows and linux --- lib/stacks/next.js | 3 ++- package.json | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index d3d7df2..6078524 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -5,6 +5,7 @@ const sysPath = require('path'); const chalk = require('chalk'); const hostedGitInfo = require('hosted-git-info'); const execa = require('execa'); +const commandExists = require('command-exists'); const initGit = require('../utils/init-git'); const messages = require('../utils/messages'); @@ -18,7 +19,7 @@ const install = async (projectName) => { process.chdir(projectName); return new Promise((resolve, reject) => { - execa(installCmd, null, { stdio: 'inherit' }) + commandExists(installCmd) .then(() => execa(installCmd, ['install'])) .then(() => { output.success(`Installed dependencies for ${output.cmd(projectName)}`); diff --git a/package.json b/package.json index 3c5d638..6fc3d78 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "ansi-escapes": "^4.3.1", "bluebird": "^3.7.2", "chalk": "^4.1.0", + "command-exists": "^1.2.9", "commander": "^6.1.0", "create-react-app": "3.4.1", "execa": "^4.0.3", From 49b04d52b4819ab5d20cd959dc83d39d2851a792 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 7 Nov 2020 20:07:14 +0900 Subject: [PATCH 12/60] update gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 40b878d..f2d09a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -node_modules/ \ No newline at end of file +node_modules/ +.DS_Store +package-lock.json \ No newline at end of file From 410372da63d2530455d9c81d501fb5457405f9d6 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 7 Nov 2020 20:08:28 +0900 Subject: [PATCH 13/60] remove yarn lock --- .gitignore | 3 +- yarn.lock | 2894 ---------------------------------------------------- 2 files changed, 2 insertions(+), 2895 deletions(-) delete mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index f2d09a8..ad88169 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ .DS_Store -package-lock.json \ No newline at end of file +package-lock.json +yarn.lock \ No newline at end of file diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 7c29f0a..0000000 --- a/yarn.lock +++ /dev/null @@ -1,2894 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/runtime@^7.11.2", "@babel/runtime@^7.8.7": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" - integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== - dependencies: - regenerator-runtime "^0.13.4" - -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/joi@^15.1.1": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" - -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== - dependencies: - "@hapi/hoek" "^8.3.0" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@turist/fetch@^7.1.7": - version "7.1.7" - resolved "https://registry.yarnpkg.com/@turist/fetch/-/fetch-7.1.7.tgz#a2b1f7ec0265e6fe0946c51eef34bad9b9efc865" - integrity sha512-XP20kvfyMNlWdPVQXyuzA40LoCHbbJptikt7W+TlZ5sS+NNjk70xjXCtHBLEudp7li3JldXEFSIUzpW1a0WEhA== - dependencies: - "@types/node-fetch" "2" - -"@turist/time@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@turist/time/-/time-0.0.1.tgz#57637d2a7d1860adb9f9cecbdcc966ce4f551d63" - integrity sha512-M2BiThcbxMxSKX8W4z5u9jKZn6datnM3+FpEU+eYw0//l31E2xhqi7vTAuJ/Sf0P3yhp66SDJgPu3bRRpvrdQQ== - -"@types/node-fetch@2": - version "2.5.7" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*": - version "14.14.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.2.tgz#d25295f9e4ca5989a2c610754dc02a9721235eeb" - integrity sha512-jeYJU2kl7hL9U5xuI/BhKPZ4vqGM/OmK6whiFAXVhlstzZhVamWhDSmHyGLIp+RVyuF9/d0dqr2P85aFj4BvJg== - -"@types/yoga-layout@1.9.2": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a" - integrity sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw== - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -arch@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" - integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-retry-ng@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-retry-ng/-/async-retry-ng-2.0.1.tgz#f5285ec1c52654a2ba6a505d0c18b1eadfaebd41" - integrity sha512-iitlc2murdQ3/A5Re3CcplQBEf7vOmFrFQ6RFn3+/+zZUyIHYkZnnEziMSa6YIb2Bs2EJEPZWReTxjHqvQbDbw== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -auto-bind@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" - integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -better-opn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-1.0.0.tgz#0454e4bb9115c6a9e4e5744417dd9c97fb9fce41" - integrity sha512-q3eO2se4sFbTERB1dFBDdjTiIIpRohMErpwBX21lhPvmgmQNNrcQj0zbWRhMREDesJvyod9kxBS3kOtdAvkB/A== - dependencies: - open "^6.4.0" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -boxen@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" - integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^2.4.2" - cli-boxes "^2.2.0" - string-width "^3.0.0" - term-size "^1.2.0" - type-fest "^0.3.0" - widest-line "^2.0.0" - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -buffer-from@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" - integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg== - -builtin-modules@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -chalk@3.0.0, chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -ci-info@2.0.0, ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" - integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== - -cli-spinners@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" - integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== - -cli-table3@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clipboardy@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" - integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== - dependencies: - arch "^2.1.1" - execa "^1.0.0" - is-wsl "^2.1.1" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.0.tgz#545983a0603fe425bc672d66c9e3c89c42121a83" - integrity sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw== - -commander@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc" - integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA== - -common-tags@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -configstore@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" - integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -convert-hrtime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" - integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== - -core-js@^2.4.0, core-js@^2.6.11: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-react-app@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/create-react-app/-/create-react-app-3.4.1.tgz#f422f26c9bce763fa7ec8dc1b3c3d7bd3a215c46" - integrity sha512-i0Zxiqj8Q2tMJkMousrZdB/vlvtoAZyN49bgAfM4yHhWQUzrpM1rZU7TX1Rg5bbDQ1R8Gk/usNnpkDzEHJdVXg== - dependencies: - chalk "3.0.0" - commander "4.1.0" - cross-spawn "7.0.1" - envinfo "7.5.0" - fs-extra "8.1.0" - hyperquest "2.1.3" - inquirer "7.0.4" - semver "6.3.0" - tar-pack "3.4.1" - tmp "0.1.0" - validate-npm-package-name "3.0.0" - -cross-spawn@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -debug@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== - dependencies: - ms "2.1.2" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-indent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== - -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" - integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" - integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== - dependencies: - is-obj "^1.0.0" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer2@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= - dependencies: - readable-stream "~1.1.9" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== - -envinfo@7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" - integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== - -envinfo@^7.5.0, envinfo@^7.7.3: - version "7.7.3" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" - integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -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" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" - integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fs-exists-cached@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz#cf25554ca050dc49ae6656b41de42258989dcbce" - integrity sha1-zyVVTKBQ3EmuZla0HeQiWJidy84= - -fs-extra@8.1.0, fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU= - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gatsby-cli@2.11.5: - version "2.11.5" - resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.11.5.tgz#4020880414ea33647a286066bf8f1707d629b3db" - integrity sha512-yAvyplWx19dU5gYdWJETEMywbNTtL9HntlR65cHhznKiwrr6Jyao+TsE50CmgZ/8Vv2JMF3UZFd3vFRXb+aK7w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/runtime" "^7.8.7" - "@hapi/joi" "^15.1.1" - better-opn "^1.0.0" - bluebird "^3.7.2" - chalk "^2.4.2" - clipboardy "^2.2.0" - common-tags "^1.8.0" - configstore "^5.0.1" - convert-hrtime "^3.0.0" - core-js "^2.6.11" - envinfo "^7.5.0" - execa "^3.4.0" - fs-exists-cached "^1.0.0" - fs-extra "^8.1.0" - gatsby-core-utils "^1.1.1" - gatsby-telemetry "^1.2.3" - hosted-git-info "^3.0.4" - is-valid-path "^0.1.1" - lodash "^4.17.15" - meant "^1.0.1" - node-fetch "^2.6.0" - object.entries "^1.1.1" - opentracing "^0.14.4" - pretty-error "^2.1.1" - progress "^2.0.3" - prompts "^2.3.1" - react "^16.8.0" - redux "^4.0.5" - resolve-cwd "^2.0.0" - semver "^6.3.0" - signal-exit "^3.0.2" - source-map "0.7.3" - stack-trace "^0.0.10" - strip-ansi "^5.2.0" - update-notifier "^3.0.1" - uuid "3.4.0" - yargs "^12.0.5" - yurnalist "^1.1.2" - optionalDependencies: - ink "^2.7.1" - ink-spinner "^3.0.1" - -gatsby-core-utils@^1.1.1, gatsby-core-utils@^1.3.23: - version "1.3.23" - resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.3.23.tgz#5d99e86178b2aa3561f58fde4fdffbebecb0dd0c" - integrity sha512-H6n6dDeRZ22HAJaBUIt5YjB/BSaE8Jq+kayMUv/YzL1RL2yFZ5lqcLwIL1OE2vWk1mQjMUBZCRxLODU0q1i3bQ== - dependencies: - ci-info "2.0.0" - configstore "^5.0.1" - fs-extra "^8.1.0" - node-object-hash "^2.0.0" - proper-lockfile "^4.1.1" - tmp "^0.2.1" - xdg-basedir "^4.0.0" - -gatsby-telemetry@^1.2.3: - version "1.3.38" - resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.3.38.tgz#1c6a81ac8cca7117c09577fa2f4c8dd12573c14e" - integrity sha512-8AoSNzVgrtPJ0Jgd+cPSuVGj2uBCXI2aJ2ANokOVjPbZO/Z+Z9hcOFdU+AkeBdZWCHaJaX0+qpE6KbgkwBoWPA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.11.2" - "@turist/fetch" "^7.1.7" - "@turist/time" "^0.0.1" - async-retry-ng "^2.0.1" - boxen "^4.2.0" - configstore "^5.0.1" - envinfo "^7.7.3" - fs-extra "^8.1.0" - gatsby-core-utils "^1.3.23" - git-up "^4.0.2" - is-docker "^2.1.1" - lodash "^4.17.20" - node-fetch "^2.6.1" - uuid "3.4.0" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -git-up@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" - integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== - dependencies: - is-ssh "^1.3.0" - parse-url "^5.0.0" - -glob@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hosted-git-info@^3.0.4, hosted-git-info@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" - integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== - dependencies: - lru-cache "^6.0.0" - -htmlparser2@^3.3.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -hyperquest@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/hyperquest/-/hyperquest-2.1.3.tgz#523127d7a343181b40bf324e231d2576edf52633" - integrity sha512-fUuDOrB47PqNK/BAMOS13v41UoaqIxqSLHX6CAbOD7OfT+/GCWO1/vPLfTNutOeXrv1ikuaZ3yux+33Z9vh+rw== - dependencies: - buffer-from "^0.1.1" - duplexer2 "~0.0.2" - through2 "~0.6.3" - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -ink-spinner@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ink-spinner/-/ink-spinner-3.1.0.tgz#a1090102663bf3cc90f1dbfb81f143378a892300" - integrity sha512-sPqmE4qeJ43vJFk9DGLd0wIqhMBAr3129ZqHPt7b847fVl+YTZ3g96khI82Db+FYE7v/Fc5B3lp4ZNtJfqpRUg== - dependencies: - cli-spinners "^1.0.0" - prop-types "^15.5.10" - -ink@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/ink/-/ink-2.7.1.tgz#ff1c75b4b022924e2993af62297fa0e48e85618b" - integrity sha512-s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA== - dependencies: - ansi-escapes "^4.2.1" - arrify "^2.0.1" - auto-bind "^4.0.0" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-truncate "^2.1.0" - is-ci "^2.0.0" - lodash.throttle "^4.1.1" - log-update "^3.0.0" - prop-types "^15.6.2" - react-reconciler "^0.24.0" - scheduler "^0.18.0" - signal-exit "^3.0.2" - slice-ansi "^3.0.0" - string-length "^3.1.0" - widest-line "^3.1.0" - wrap-ansi "^6.2.0" - yoga-layout-prebuilt "^1.9.3" - -inquirer@7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" - integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.2.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^7.0.0: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -invariant@^2.2.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-builtin-module@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.0.0.tgz#137d3d2425023a19a660fb9dd6ddfabe52c03466" - integrity sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw== - dependencies: - builtin-modules "^3.0.0" - -is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" - integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-invalid-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" - integrity sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ= - dependencies: - is-glob "^2.0.0" - -is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= - -is-npm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" - integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-regex@^1.0.4, is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-ssh@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" - integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== - dependencies: - protocols "^1.1.0" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-valid-path@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" - integrity sha1-EQ+f90w39mPh7HkV60UfLbk6yd8= - dependencies: - is-invalid-path "^0.1.0" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== - dependencies: - universalify "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -log-update@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-3.4.0.tgz#3b9a71e00ac5b1185cc193a36d654581c48f97b9" - integrity sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg== - dependencies: - ansi-escapes "^3.2.0" - cli-cursor "^2.1.0" - wrap-ansi "^5.0.0" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-2.2.0.tgz#4255eb6e9c74045b0edc021fa7397ab655a8517c" - integrity sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ== - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.2" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -meant@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.2.tgz#5d0c78310a3d8ae1408a16be0fe0bd42a969f560" - integrity sha512-KN+1uowN/NK+sT/Lzx7WSGIj2u+3xe5n2LbwObfjOhPZiA+cCfCm6idVl0RkEfjThkw5XJ96CyRcanq6GmKtUg== - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.0.0, mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimatch@^3.0.0, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -"mkdirp@>=0.5 0": - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@0.0.8, mute-stream@~0.0.4: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-emoji@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== - dependencies: - lodash.toarray "^4.4.0" - -node-fetch@^2.6.0, node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-object-hash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-2.0.0.tgz#9971fcdb7d254f05016bd9ccf508352bee11116b" - integrity sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ== - -normalize-url@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-is@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" - integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-path@^0.11.2: - version "0.11.5" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a" - integrity sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg== - -object.assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" - integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.entries@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - has "^1.0.3" - -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== - dependencies: - is-wsl "^1.1.0" - -opentracing@^0.14.4: - version "0.14.4" - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.4.tgz#a113408ea740da3a90fde5b3b0011a375c2e4268" - integrity sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA== - -ora@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" - integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== - dependencies: - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.4.0" - is-interactive "^1.0.0" - log-symbols "^4.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-locale@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -parse-path@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa" - integrity sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - -parse-url@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" - integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== - dependencies: - is-ssh "^1.3.0" - normalize-url "^3.3.0" - parse-path "^4.0.0" - protocols "^1.4.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -pretty-error@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prompts@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.4" - -prop-types@^15.5.10, prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -proper-lockfile@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.1.tgz#284cf9db9e30a90e647afad69deb7cb06881262c" - integrity sha512-1w6rxXodisVpn7QYvLk706mzprPTAPCYAqxMvctmPN3ekuRk/kuGkGc82pangZiAt4R3lwSuUzheTTn0/Yb7Zg== - dependencies: - graceful-fs "^4.1.11" - retry "^0.12.0" - signal-exit "^3.0.2" - -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-reconciler@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.24.0.tgz#5a396b2c2f5efe8554134a5935f49f546723f2dd" - integrity sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.18.0" - -react@^16.8.0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -read@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= - dependencies: - mute-stream "~0.0.4" - -"readable-stream@>=1.0.33-1 <1.1.0-0": - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.1.4: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -redux@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== - dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -registry-auth-token@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" - integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -renderkid@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz#d325e532afb28d3f8796ffee306be8ffd6fc864c" - integrity sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g== - dependencies: - css-select "^1.1.0" - dom-converter "^0.2" - htmlparser2 "^3.3.0" - lodash "^4.17.20" - strip-ansi "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -rimraf@2, rimraf@^2.5.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-async@^2.2.0, run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.5.3, rxjs@^6.6.0: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scheduler@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" - integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -semver@6.3.0, semver@^6.0.0, semver@^6.2.0, 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== - -semver@^5.0.3, semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -sisteransi@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -source-map@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -stack-trace@^0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= - -string-length@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" - integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== - dependencies: - astral-regex "^1.0.0" - strip-ansi "^5.2.0" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" - integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -string.prototype.trimstart@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" - integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -tar-pack@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - integrity sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg== - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== - -through2@~0.6.3: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - -update-notifier@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" - integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== - dependencies: - boxen "^3.0.0" - chalk "^2.0.1" - configstore "^4.0.0" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.1.0" - is-npm "^3.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -uuid@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -validate-npm-package-name@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= - dependencies: - builtins "^1.0.3" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -"xtend@>=4.0.0 <4.1.0-0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -"y18n@^3.2.1 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - -yoga-layout-prebuilt@^1.9.3: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.10.0.tgz#2936fbaf4b3628ee0b3e3b1df44936d6c146faa6" - integrity sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g== - dependencies: - "@types/yoga-layout" "1.9.2" - -yurnalist@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/yurnalist/-/yurnalist-1.1.2.tgz#0fce283f1c53ea25ec278e2d1ab58537323b63e0" - integrity sha512-y7bsTXqL+YMJQ2De2CBtSftJNLQnB7gWIzzKm10GDyC8Fg4Dsmd2LG5YhT8pudvUiuotic80WVXt/g1femRVQg== - dependencies: - babel-runtime "^6.26.0" - chalk "^2.4.2" - cli-table3 "^0.5.1" - debug "^4.1.1" - deep-equal "^1.1.0" - detect-indent "^6.0.0" - inquirer "^7.0.0" - invariant "^2.2.0" - is-builtin-module "^3.0.0" - is-ci "^2.0.0" - leven "^3.1.0" - loud-rejection "^2.2.0" - node-emoji "^1.10.0" - object-path "^0.11.2" - read "^1.0.7" - rimraf "^3.0.0" - semver "^6.3.0" - strip-ansi "^5.2.0" - strip-bom "^4.0.0" From 0c37f619cea246774310e96d61e1db21e77453f5 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 7 Nov 2020 20:08:50 +0900 Subject: [PATCH 14/60] 1.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6fc3d78..7f2c724 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.0.0", + "version": "1.0.1", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 331dc8c09f52a548a8061949af6c90eb36ae7ad5 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 12 Dec 2020 20:51:04 +0900 Subject: [PATCH 15/60] added tailwind by default --- README.md | 6 +++--- lib/stacks/gatsby.js | 4 ++-- lib/stacks/native.js | 2 +- lib/stacks/next.js | 8 ++++---- package.json | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 85ad387..c573e6d 100644 --- a/README.md +++ b/README.md @@ -9,16 +9,16 @@ Usage (choose your stack, your app name and style library): ```bash -yarn create r3f-app my-app +yarn create r3f-app my-app ``` or ```bash -npx create-r3f-app my-app +npx create-r3f-app my-app ``` ## Documentation -- Default style is sass +- Default style is tailwind [https://renaudrohlinger.github.io/create-r3f-app](https://renaudrohlinger.github.io/create-r3f-app). diff --git a/lib/stacks/gatsby.js b/lib/stacks/gatsby.js index e9712f3..15ecbb2 100644 --- a/lib/stacks/gatsby.js +++ b/lib/stacks/gatsby.js @@ -7,8 +7,8 @@ const messages = require('../utils/messages'); const output = require('../utils/output'); module.exports = async function gatsby(projectName, projectPath, projectStyle) { - const isStyled = projectStyle === 'styled'; - const starter = `https://github.com/RenaudROHLINGER/r3f-gatsby-starter#${isSass ? 'styled' : 'master'}`; + const isSass = projectStyle === 'sass'; + const starter = `https://github.com/RenaudROHLINGER/r3f-gatsby-starter#${isSass ? 'scss' : 'main'}`; output.info( `🚀 Creating ${chalk.bold(chalk.green(projectName))} using ${chalk.bold( diff --git a/lib/stacks/native.js b/lib/stacks/native.js index 1b41904..c5cfb95 100644 --- a/lib/stacks/native.js +++ b/lib/stacks/native.js @@ -54,7 +54,7 @@ async function native(projectName, bundleId) { ); const hostedInfo = hostedGitInfo.fromUrl( - 'https://github.com/RenaudROHLINGER/r3f-native-starter#master', + 'https://github.com/RenaudROHLINGER/r3f-native-starter#main', ); const url = hostedInfo.https({ noCommittish: true, noGitPlus: true }); diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 6078524..e83192a 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -36,11 +36,11 @@ async function next(projectName, projectPath, projectStyle) { )}...`, ); - const isStyled = projectStyle === 'styled'; + const isSass = projectStyle === 'sass'; const hostedInfo = hostedGitInfo.fromUrl('https://github.com/RenaudROHLINGER/r3f-next-starter'); - const url = hostedInfo.https({ noCommittish: !isStyled, noGitPlus: true }); - const branch = isStyled ? ['--branch', 'styled'] : []; - const recursive = isStyled ? [] : ['--recursive']; + const url = hostedInfo.https({ noCommittish: !isSass, noGitPlus: true }); + const branch = isSass ? ['--branch', 'scss'] : []; + const recursive = isSass ? [] : ['--recursive']; const args = [ 'clone', url, diff --git a/package.json b/package.json index 7f2c724..9d27eeb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.0.1", + "version": "1.0.2", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 3fd039ba56e7ed42643b192d5449b0edf073637c Mon Sep 17 00:00:00 2001 From: onirenaud Date: Wed, 6 Jan 2021 22:35:55 +0900 Subject: [PATCH 16/60] updated to react-three-next --- docs/setup/USAGE.md | 4 ++-- lib/stacks/next.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/setup/USAGE.md b/docs/setup/USAGE.md index da2c731..6689568 100644 --- a/docs/setup/USAGE.md +++ b/docs/setup/USAGE.md @@ -4,10 +4,10 @@ Create R3F App supports 1 stack: ## Next -NextJS with full server capabilities and static rendering. It uses [r3f-next-starter](https://github.com/RenaudROHLINGER/r3f-next-starter) as the base config. +NextJS with full server capabilities and static rendering. It uses [react-three-next](https://github.com/pmndrs/react-three-next) as the base config. ```bash -yarn create r3f-app next example-www +yarn create r3f-app next example-www ``` !> The `project-name` will be generated using the path you defined. diff --git a/lib/stacks/next.js b/lib/stacks/next.js index e83192a..7b56559 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -37,7 +37,7 @@ async function next(projectName, projectPath, projectStyle) { ); const isSass = projectStyle === 'sass'; - const hostedInfo = hostedGitInfo.fromUrl('https://github.com/RenaudROHLINGER/r3f-next-starter'); + const hostedInfo = hostedGitInfo.fromUrl('https://github.com/pmndrs/react-three-next'); const url = hostedInfo.https({ noCommittish: !isSass, noGitPlus: true }); const branch = isSass ? ['--branch', 'scss'] : []; const recursive = isSass ? [] : ['--recursive']; From c77fb3fa69f6c01ccf904f41a0b656a503dfba6b Mon Sep 17 00:00:00 2001 From: onirenaud Date: Wed, 6 Jan 2021 22:36:26 +0900 Subject: [PATCH 17/60] 1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9d27eeb..42ef1d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.0.2", + "version": "1.1.0", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 9fdfbc7c1bbe0c40346027c8306a05954a251da6 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 5 Jun 2021 21:01:07 +0900 Subject: [PATCH 18/60] fix branch --- lib/stacks/next.js | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 7b56559..29caa18 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -36,11 +36,11 @@ async function next(projectName, projectPath, projectStyle) { )}...`, ); - const isSass = projectStyle === 'sass'; + const isPmndrs = projectStyle === 'pmndrs'; const hostedInfo = hostedGitInfo.fromUrl('https://github.com/pmndrs/react-three-next'); - const url = hostedInfo.https({ noCommittish: !isSass, noGitPlus: true }); - const branch = isSass ? ['--branch', 'scss'] : []; - const recursive = isSass ? [] : ['--recursive']; + const url = hostedInfo.https({ noCommittish: !isPmndrs, noGitPlus: true }); + const branch = isPmndrs ? ['--branch', 'pmndrs'] : ['main']; + const recursive = isPmndrs ? [] : ['--recursive']; const args = [ 'clone', url, diff --git a/package.json b/package.json index 42ef1d7..48bcf24 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.1.0", + "version": "1.1.1", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From f5143afd9a8043f7dcdd37fbca5a5e9a99924cd0 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 5 Jun 2021 21:06:41 +0900 Subject: [PATCH 19/60] fix default branch --- lib/stacks/next.js | 2 +- lib/utils/messages.js | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 29caa18..0d7a284 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -39,7 +39,7 @@ async function next(projectName, projectPath, projectStyle) { const isPmndrs = projectStyle === 'pmndrs'; const hostedInfo = hostedGitInfo.fromUrl('https://github.com/pmndrs/react-three-next'); const url = hostedInfo.https({ noCommittish: !isPmndrs, noGitPlus: true }); - const branch = isPmndrs ? ['--branch', 'pmndrs'] : ['main']; + const branch = isPmndrs ? ['--branch', 'pmndrs'] : ['--branch', 'main']; const recursive = isPmndrs ? [] : ['--recursive']; const args = [ 'clone', diff --git a/lib/utils/messages.js b/lib/utils/messages.js index d601bad..8f19588 100644 --- a/lib/utils/messages.js +++ b/lib/utils/messages.js @@ -111,5 +111,5 @@ exports.start = function (projectName, type) { ${guide} Questions? Feedback? Please let me know! - ${chalk.green('https://github.com/create-r3f-app/issues')}`); + ${chalk.green('https://github.com/RenaudRohlinger/create-r3f-app/issues')}`); }; diff --git a/package.json b/package.json index 48bcf24..7b4431c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.1.1", + "version": "1.1.3", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From a9de195308d762cb03392a5c40a98e53fd6afdb7 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Sat, 31 Jul 2021 18:18:20 +0900 Subject: [PATCH 20/60] feat: add TypeScript support --- bin/create-r3f-app | 5 +++ lib/index.js | 4 +-- lib/stacks/next.js | 78 ++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 79 insertions(+), 8 deletions(-) diff --git a/bin/create-r3f-app b/bin/create-r3f-app index 1b08c8e..f042862 100755 --- a/bin/create-r3f-app +++ b/bin/create-r3f-app @@ -13,6 +13,7 @@ let projectName; program .version(pkg.version) .arguments(' ') + .option('-ts, --typescript', 'create r3f app with TypeScript') .usage(`${chalk.yellow('')} ${chalk.green('')} `) .action(function projectNameAction(type, name) { appType = type; @@ -22,7 +23,11 @@ program .on('--help', messages.help) .parse(process.argv); +const options = program.opts(); +const projectOption = options.typescript ? 'typescript' : 'default'; + createR3fApp({ appType, projectName, + projectOption, }); diff --git a/lib/index.js b/lib/index.js index 00ca063..8fb5cf1 100644 --- a/lib/index.js +++ b/lib/index.js @@ -11,7 +11,7 @@ const next = require('./stacks/next'); // todo add gatsby and native const appTypes = ['next']; -module.exports = async function createR3fApp({ projectName, appType }) { +module.exports = async function createR3fApp({ projectName, appType, projectOption }) { console.log(chalk.bold(chalk.blue(`Welcome. Project's generation started using create-R3F-App 🐱`))); await checkForUpdate(); @@ -52,7 +52,7 @@ module.exports = async function createR3fApp({ projectName, appType }) { // native(projectName, process.argv[4]); // break; case 'next': - next(projectName, projectPath, appStyle); + next(projectName, projectPath, appStyle, projectOption); break; default: break; diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 0d7a284..6486db8 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -12,7 +12,7 @@ const messages = require('../utils/messages'); const getInstallCmd = require('../utils/get-install-cmd'); const output = require('../utils/output'); -const install = async (projectName) => { +const install = async (projectName, typescript) => { const installCmd = getInstallCmd(); output.info('Installing packages...'); @@ -21,15 +21,64 @@ const install = async (projectName) => { return new Promise((resolve, reject) => { commandExists(installCmd) .then(() => execa(installCmd, ['install'])) - .then(() => { - output.success(`Installed dependencies for ${output.cmd(projectName)}`); + .then(() => output.success(`Installed dependencies for ${output.cmd(projectName)}`)) + .then(async () => { + if (typescript) { + const useYarn = installCmd === 'yarn'; + output.info('Installing packages for TypeScript...'); + const installDepsCmd = useYarn ? 'add' : 'install' + await execa(installCmd, [installDepsCmd, '-D', 'typescript', '@types/react', '@types/node']); + output.success('Installed dependencies for TypeScript'); + } resolve(); }) .catch(() => reject(new Error(`${installCmd} installation failed`))); }).catch((error) => output.error(error.message)); }; -async function next(projectName, projectPath, projectStyle) { +const initForTypeScript = async (root) => { + output.info('Initializing for TypeScript...'); + + const jsConfigJson = await fs.readFile(sysPath.join(root, 'jsconfig.json')) + .then((value) => { + const lines = value.toString().split('\n'); + const filtered = lines.filter(line => !line.match(/@js-ignore/)); + return JSON.parse(filtered.join('')); + }); + const compilerOptions = jsConfigJson.compilerOptions; + const { module, ...others } = compilerOptions; + const tsConfigBaseJson = { + compilerOptions: others + }; + await fs.writeJson(sysPath.join(root, 'tsconfig.json'), tsConfigBaseJson, { spaces: 2 }); + await fs.remove(sysPath.join(root, 'jsconfig.json')); + await fs.remove(sysPath.join(root, 'jsconfig.server.json')); + + const installCmd = getInstallCmd(); + const useYarn = installCmd === 'yarn'; + const buildCmd = useYarn ? ['build'] : ['run', 'build']; + + await execa(installCmd, buildCmd); + output.success('Succeed to initialize'); +} + +const recursiveReaddir = async (root, dir, files = []) => { + const srcDirs = []; + const srcDirents = await fs.readdir(sysPath.join(root, dir), { withFileTypes: true }); + + srcDirents.forEach((dirent) => { + if (dirent.isDirectory()) srcDirs.push(`${dir}/${dirent.name}`); + if (dirent.isFile()) files.push(`${dir}/${dirent.name}`); + }); + + for (const srcDir of srcDirs) { + files = await recursiveReaddir(root, srcDir, files); + } + + return Promise.resolve(files); +} + +async function next(projectName, projectPath, projectStyle, projectOption) { output.info( `🚀 Creating ${chalk.bold(chalk.green(projectName))} using ${chalk.bold( 'r3f-next-starter', @@ -54,10 +103,27 @@ async function next(projectName, projectPath, projectStyle) { output.success(`Folder and files created for ${output.cmd(projectName)}`); await fs.remove(sysPath.join(projectName, '.git')); - await install(projectName); + + const typescript = projectOption === 'typescript'; + const root = sysPath.resolve(projectName); + + await install(projectName, typescript); process.chdir(projectPath); - await initGit('Next'); + if (typescript) { + await initForTypeScript(root); + + const srcAllFiles = await recursiveReaddir(root, 'src'); + const srcJsFiles = srcAllFiles.filter(file => new RegExp(/.js|jsx/).test(file)); + + for (const srcJsFile of srcJsFiles) { + const parsed = sysPath.parse(srcJsFile); + const newExt = parsed.ext === '.js' ? '.ts' : '.tsx'; + await fs.rename(sysPath.join(root, srcJsFile), sysPath.join(root, `${parsed.dir}/${parsed.name}${newExt}`)); + } + } + + await initGit('Next'); messages.start(projectName, 'next'); } From d5c9431590f4984bdb96aa54e4a1ced93312e62f Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sun, 1 Aug 2021 09:10:02 +0900 Subject: [PATCH 21/60] added ts support --- README.md | 8 ++++---- lib/index.js | 8 +------- lib/stacks/gatsby.js | 32 -------------------------------- package.json | 17 +++++++---------- 4 files changed, 12 insertions(+), 53 deletions(-) delete mode 100644 lib/stacks/gatsby.js diff --git a/README.md b/README.md index c573e6d..f73c13a 100644 --- a/README.md +++ b/README.md @@ -9,16 +9,16 @@ Usage (choose your stack, your app name and style library): ```bash -yarn create r3f-app my-app +yarn create r3f-app my-app --ts? ``` or ```bash -npx create-r3f-app my-app +npx create-r3f-app my-app --ts? ``` -## Documentation - Default style is tailwind -[https://renaudrohlinger.github.io/create-r3f-app](https://renaudrohlinger.github.io/create-r3f-app). +### TODO +- Support styled component? \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 8fb5cf1..26c53ae 100644 --- a/lib/index.js +++ b/lib/index.js @@ -28,7 +28,7 @@ module.exports = async function createR3fApp({ projectName, appType, projectOpti process.exit(1); } - if ((appType === 'next' || appType === 'gatsby') && process.argv[4] === 'styled') { + if ((appType === 'next') && process.argv[4] === 'styled') { appStyle = 'styled'; } @@ -45,12 +45,6 @@ module.exports = async function createR3fApp({ projectName, appType, projectOpti const projectPath = `${process.cwd()}/${projectName}`; switch (appType) { - // case 'gatsby': - // gatsby(projectName, projectPath, appStyle); - // break; - // case 'native': - // native(projectName, process.argv[4]); - // break; case 'next': next(projectName, projectPath, appStyle, projectOption); break; diff --git a/lib/stacks/gatsby.js b/lib/stacks/gatsby.js deleted file mode 100644 index 15ecbb2..0000000 --- a/lib/stacks/gatsby.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -const chalk = require('chalk'); -const execa = require('execa'); - -const messages = require('../utils/messages'); -const output = require('../utils/output'); - -module.exports = async function gatsby(projectName, projectPath, projectStyle) { - const isSass = projectStyle === 'sass'; - const starter = `https://github.com/RenaudROHLINGER/r3f-gatsby-starter#${isSass ? 'scss' : 'main'}`; - - output.info( - `🚀 Creating ${chalk.bold(chalk.green(projectName))} using ${chalk.bold( - 'gatsby-cli/lib/init-starter', - )} and ${chalk.bold('r3f-gatsby-starter')}...`, - ); - - await require('gatsby-cli/lib/init-starter').initStarter(starter, { rootPath: projectName }); - - process.chdir(projectPath); - - try { - await execa('git', ['commit', '--amend', '-m', 'Init Create React website with Gatsby'], { - stdio: 'ignore', - }); - } catch (e) { - output.error(`Cannot change the commit message: ${e}`); - } - - messages.start(projectName, 'gatsby'); -}; diff --git a/package.json b/package.json index 7b4431c..ef504d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.1.3", + "version": "1.2.0", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " @@ -14,16 +14,13 @@ }, "license": "MIT", "dependencies": { - "ansi-escapes": "^4.3.1", - "bluebird": "^3.7.2", - "chalk": "^4.1.0", + "ansi-escapes": "^5.0.0", + "chalk": "^4.1.2", "command-exists": "^1.2.9", - "commander": "^6.1.0", - "create-react-app": "3.4.1", + "commander": "^8.1.0", "execa": "^4.0.3", - "fs-extra": "^9.0.1", - "gatsby-cli": "2.11.5", - "hosted-git-info": "^3.0.7", - "ora": "^5.1.0" + "fs-extra": "^10.0.0", + "hosted-git-info": "^4.0.2", + "ora": "^5.4.1" } } From d9dc179e86c2b3c63366597caa45cf125994aa70 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sun, 1 Aug 2021 09:12:56 +0900 Subject: [PATCH 22/60] clean lock --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ef504d9..504f99a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.2.0", + "version": "1.2.1", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 6caa21b1077c6aa66fb03c65693cca43ecd000ea Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sun, 1 Aug 2021 09:14:03 +0900 Subject: [PATCH 23/60] fix dep --- package.json | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 504f99a..28780b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.2.1", + "version": "1.2.2", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " @@ -14,13 +14,15 @@ }, "license": "MIT", "dependencies": { - "ansi-escapes": "^5.0.0", - "chalk": "^4.1.2", + "ansi-escapes": "^4.3.1", + "bluebird": "^3.7.2", + "chalk": "^4.1.0", "command-exists": "^1.2.9", - "commander": "^8.1.0", + "commander": "^6.1.0", + "create-react-app": "3.4.1", "execa": "^4.0.3", - "fs-extra": "^10.0.0", - "hosted-git-info": "^4.0.2", - "ora": "^5.4.1" + "fs-extra": "^9.0.1", + "hosted-git-info": "^3.0.7", + "ora": "^5.1.0" } } From 27a11b3ef2b0feb35cd164e54c8704ea10a300aa Mon Sep 17 00:00:00 2001 From: Renaud Rohlinger Date: Sun, 1 Aug 2021 09:25:40 +0900 Subject: [PATCH 24/60] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f73c13a..f7887be 100644 --- a/README.md +++ b/README.md @@ -9,16 +9,16 @@ Usage (choose your stack, your app name and style library): ```bash -yarn create r3f-app my-app --ts? +yarn create r3f-app my-app -ts? ``` or ```bash -npx create-r3f-app my-app --ts? +npx create-r3f-app my-app -ts? ``` - Default style is tailwind ### TODO -- Support styled component? \ No newline at end of file +- Support styled component? From 88be6adf45387c09f64cc2afe17d8618615046c7 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Mon, 2 Aug 2021 02:01:27 +0900 Subject: [PATCH 25/60] feat: add styled-components support --- bin/create-r3f-app | 9 +- lib/index.js | 10 +-- lib/stacks/next.js | 60 ++++++++++++-- lib/styles/index.css | 152 ++++++++++++++++++++++++++++++++++ lib/styles/index.tailwind.css | 19 +++++ 5 files changed, 231 insertions(+), 19 deletions(-) create mode 100644 lib/styles/index.css create mode 100644 lib/styles/index.tailwind.css diff --git a/bin/create-r3f-app b/bin/create-r3f-app index f042862..dad600d 100755 --- a/bin/create-r3f-app +++ b/bin/create-r3f-app @@ -9,15 +9,17 @@ const messages = require('../lib/utils/messages'); let appType; let projectName; +let appStyle; program .version(pkg.version) - .arguments(' ') + .arguments(' [app-style] ') .option('-ts, --typescript', 'create r3f app with TypeScript') - .usage(`${chalk.yellow('')} ${chalk.green('')} `) - .action(function projectNameAction(type, name) { + .usage(`${chalk.yellow('')} ${chalk.green('')} ${chalk.blue('[app-style]')} `) + .action(function projectNameAction(type, name, style) { appType = type; projectName = name; + appStyle = style ?? 'tailwind'; }) .allowUnknownOption() .on('--help', messages.help) @@ -30,4 +32,5 @@ createR3fApp({ appType, projectName, projectOption, + appStyle, }); diff --git a/lib/index.js b/lib/index.js index 26c53ae..81dfde1 100644 --- a/lib/index.js +++ b/lib/index.js @@ -11,13 +11,11 @@ const next = require('./stacks/next'); // todo add gatsby and native const appTypes = ['next']; -module.exports = async function createR3fApp({ projectName, appType, projectOption }) { +module.exports = async function createR3fApp({ projectName, appType, projectOption, appStyle }) { console.log(chalk.bold(chalk.blue(`Welcome. Project's generation started using create-R3F-App 🐱`))); await checkForUpdate(); - let appStyle; - if (!projectName) { messages.missingProjectName(); process.exit(1); @@ -28,16 +26,12 @@ module.exports = async function createR3fApp({ projectName, appType, projectOpti process.exit(1); } - if ((appType === 'next') && process.argv[4] === 'styled') { - appStyle = 'styled'; - } - if (fs.existsSync(projectName)) { messages.alreadyExists(projectName); process.exit(1); } - if (appType === 'native' && !process.argv[4]) { + if (appType === 'native') { messages.missingBundleId(projectName); process.exit(1); } diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 6486db8..b2d774f 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -12,7 +12,7 @@ const messages = require('../utils/messages'); const getInstallCmd = require('../utils/get-install-cmd'); const output = require('../utils/output'); -const install = async (projectName, typescript) => { +const install = async (projectName, typescript, isNotDefaultStyle) => { const installCmd = getInstallCmd(); output.info('Installing packages...'); @@ -23,13 +23,22 @@ const install = async (projectName, typescript) => { .then(() => execa(installCmd, ['install'])) .then(() => output.success(`Installed dependencies for ${output.cmd(projectName)}`)) .then(async () => { + const useYarn = installCmd === 'yarn'; + const installDepsCmd = useYarn ? 'add' : 'install' + + if (isNotDefaultStyle) { + output.info('Installing packages for styled-components...'); + await execa(installCmd, [installDepsCmd, '-D', 'styled-components', 'babel-plugin-styled-components']); + if (typescript) await execa(installCmd, [installDepsCmd, '-D', '@types/styled-components']); + output.success('Installed dependencies for styled-components'); + } + if (typescript) { - const useYarn = installCmd === 'yarn'; output.info('Installing packages for TypeScript...'); - const installDepsCmd = useYarn ? 'add' : 'install' await execa(installCmd, [installDepsCmd, '-D', 'typescript', '@types/react', '@types/node']); output.success('Installed dependencies for TypeScript'); } + resolve(); }) .catch(() => reject(new Error(`${installCmd} installation failed`))); @@ -59,7 +68,33 @@ const initForTypeScript = async (root) => { const buildCmd = useYarn ? ['build'] : ['run', 'build']; await execa(installCmd, buildCmd); - output.success('Succeed to initialize'); + output.success('Succeed to initialize for TypeScript'); +} + +const initForStyledComponents = async (root) => { + output.info('Initializing for styled-components...'); + + const installCmd = getInstallCmd(); + const useYarn = installCmd === 'yarn'; + const uninstallCmd = useYarn ? ['remove'] : ['uninstall']; + + await execa(installCmd, [...uninstallCmd, 'tailwindcss']); + + await fs.remove(sysPath.join(root, 'postcss.config.js')); + await fs.remove(sysPath.join(root, 'tailwind.config.js')); + + const babelrc = await fs.readJSON(sysPath.join(root, '.babelrc')); + babelrc.plugins.push('styled-components'); + await fs.writeJSON(sysPath.join(root, '.babelrc'), babelrc, { spaces: 2 }); + + const eslintrc = await fs.readJSON(sysPath.join(root, '.eslintrc')); + const newEslintRcExtends = eslintrc.extends.filter(extend => extend !== 'plugin:tailwind/recommended'); + await fs.writeJSON(sysPath.join(root, '.eslintrc'), { extends: newEslintRcExtends }, { spaces: 2 }); + + const indexCss = await fs.readFile(sysPath.join(__dirname, '../styles/index.css')); + await fs.writeFile(sysPath.join(root, 'src/styles/index.css'), indexCss); + + output.success('Succeed to initialize for styled-components'); } const recursiveReaddir = async (root, dir, files = []) => { @@ -85,7 +120,8 @@ async function next(projectName, projectPath, projectStyle, projectOption) { )}...`, ); - const isPmndrs = projectStyle === 'pmndrs'; + const isNotDefaultStyle = projectStyle !== 'tailwind'; + const isPmndrs = isNotDefaultStyle && projectStyle !== 'styled'; const hostedInfo = hostedGitInfo.fromUrl('https://github.com/pmndrs/react-three-next'); const url = hostedInfo.https({ noCommittish: !isPmndrs, noGitPlus: true }); const branch = isPmndrs ? ['--branch', 'pmndrs'] : ['--branch', 'main']; @@ -103,13 +139,21 @@ async function next(projectName, projectPath, projectStyle, projectOption) { output.success(`Folder and files created for ${output.cmd(projectName)}`); await fs.remove(sysPath.join(projectName, '.git')); - - const typescript = projectOption === 'typescript'; + const root = sysPath.resolve(projectName); - await install(projectName, typescript); + const typescript = projectOption === 'typescript'; + + await install(projectName, typescript, isNotDefaultStyle); process.chdir(projectPath); + if (isNotDefaultStyle) { + await initForStyledComponents(root); + } else { + const indexCss = await fs.readFile(sysPath.join(__dirname, '../styles/index.tailwind.css')); + await fs.writeFile(sysPath.join(root, 'src/styles/index.css'), indexCss); + } + if (typescript) { await initForTypeScript(root); diff --git a/lib/styles/index.css b/lib/styles/index.css new file mode 100644 index 0000000..bffd08e --- /dev/null +++ b/lib/styles/index.css @@ -0,0 +1,152 @@ +* { + box-sizing: border-box; +} + +html, +body { + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, + Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, + Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; +} + +html, +body, +#__next { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; +} + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +.absolute { + position: absolute; +} + +.top-0 { + top: 0px; +} + +.left-0 { + left: 0px; +} + +.z-10 { + z-index: 10; +} + +.w-screen { + width: 100vw; +} + +.h-screen { + height: 100vh; +} + +.overflow-hidden { + overflow: hidden; +} + +.max-w-lg { + max-width: 32rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.text-sm { + font-size: 0.875rem; +} + +.shadow-xl { + box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), + 0 10px 10px -5px rgba(0, 0, 0, 0.04); +} + +.pointer-events-none { + pointer-events: none; +} + +.select-none { + user-select: none; +} + +@media (min-width: 768px) { + .md\:text-base { + font-size: 1rem /* 16px */; + line-height: 1.5rem /* 24px */; + } +} + +.top-8 { + top: 2rem; +} + +.left-1\/2 { + left: 50%; +} + +.text-gray-50 { + color: #f9fafb; +} + +.transform { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-transform: translateX(var(--tw-translate-x)) + translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) + skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) + scaleY(var(--tw-scale-y)); + transform: var(--tw-transform); +} + +.-translate-x-1\/2 { + --tw-translate-x: -50%; + transform: var(--tw-transform); +} + +.hidden { + display: none; +} + +.mb-8 { + margin-bottom: 2rem; +} + +@media (min-width: 768px) { + .md\:block { + display: block; + } +} + +.tracking-wider { + letter-spacing: 0.05em; +} diff --git a/lib/styles/index.tailwind.css b/lib/styles/index.tailwind.css new file mode 100644 index 0000000..53d6513 --- /dev/null +++ b/lib/styles/index.tailwind.css @@ -0,0 +1,19 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + * { + box-sizing: border-box; + } + + html, + body, + #__next { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; + } +} From dafce573baa15cefc3bbe6348cbd3c24b8392003 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Tue, 3 Aug 2021 22:21:10 +0900 Subject: [PATCH 26/60] fix: lint with TypeScript --- lib/stacks/next.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 6486db8..ec04034 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -46,14 +46,21 @@ const initForTypeScript = async (root) => { return JSON.parse(filtered.join('')); }); const compilerOptions = jsConfigJson.compilerOptions; - const { module, ...others } = compilerOptions; + const { module, ...otherOptions } = compilerOptions; const tsConfigBaseJson = { - compilerOptions: others + compilerOptions: otherOptions }; await fs.writeJson(sysPath.join(root, 'tsconfig.json'), tsConfigBaseJson, { spaces: 2 }); await fs.remove(sysPath.join(root, 'jsconfig.json')); await fs.remove(sysPath.join(root, 'jsconfig.server.json')); + const packageJson = await fs.readJSON(sysPath.join(root, 'package.json')); + const { scripts, ...otherConfigs } = packageJson; + scripts.eslint = 'eslint --fix \"./src/**/*.{ts,tsx}\"'; + scripts.prettier = 'prettier --list-different \"./src/**/*.{ts,tsx,md}\"'; + const newPackageJson = { ...otherConfigs, scripts }; + await fs.writeJSON(sysPath.join(root, 'package.json'), newPackageJson, { spaces: 2 }); + const installCmd = getInstallCmd(); const useYarn = installCmd === 'yarn'; const buildCmd = useYarn ? ['build'] : ['run', 'build']; From 70f2b4a824c08154c6ffde839c3713e70ce49d48 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Wed, 4 Aug 2021 15:39:35 +0900 Subject: [PATCH 27/60] refactor: remove a implement to replace eslint in the npm script --- lib/stacks/next.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index ec04034..4615b20 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -56,7 +56,6 @@ const initForTypeScript = async (root) => { const packageJson = await fs.readJSON(sysPath.join(root, 'package.json')); const { scripts, ...otherConfigs } = packageJson; - scripts.eslint = 'eslint --fix \"./src/**/*.{ts,tsx}\"'; scripts.prettier = 'prettier --list-different \"./src/**/*.{ts,tsx,md}\"'; const newPackageJson = { ...otherConfigs, scripts }; await fs.writeJSON(sysPath.join(root, 'package.json'), newPackageJson, { spaces: 2 }); From 0510b511fb40fc8d39c43dc31fd95caf92019f5b Mon Sep 17 00:00:00 2001 From: shuta13 Date: Tue, 3 Aug 2021 23:00:14 +0900 Subject: [PATCH 28/60] feat: add support for migration from tailwind to styled --- bin/create-r3f-app | 2 +- lib/stacks/next.js | 160 ++++++++++++++++++++++++----- lib/styles/index.css | 152 --------------------------- lib/styles/index.tailwind.css | 19 ---- lib/utils/extract-class-names.js | 169 +++++++++++++++++++++++++++++++ package.json | 8 +- 6 files changed, 313 insertions(+), 197 deletions(-) delete mode 100644 lib/styles/index.css delete mode 100644 lib/styles/index.tailwind.css create mode 100644 lib/utils/extract-class-names.js diff --git a/bin/create-r3f-app b/bin/create-r3f-app index dad600d..8cee724 100755 --- a/bin/create-r3f-app +++ b/bin/create-r3f-app @@ -15,7 +15,7 @@ program .version(pkg.version) .arguments(' [app-style] ') .option('-ts, --typescript', 'create r3f app with TypeScript') - .usage(`${chalk.yellow('')} ${chalk.green('')} ${chalk.blue('[app-style]')} `) + .usage(`${chalk.yellow('')} ${chalk.green('')} ${chalk.magenta('[app-style]')} `) .action(function projectNameAction(type, name, style) { appType = type; projectName = name; diff --git a/lib/stacks/next.js b/lib/stacks/next.js index b2d774f..25449f0 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -6,11 +6,15 @@ const chalk = require('chalk'); const hostedGitInfo = require('hosted-git-info'); const execa = require('execa'); const commandExists = require('command-exists'); +const postcss = require('postcss'); +const importFrom = require('import-from'); +const j = require('jscodeshift'); const initGit = require('../utils/init-git'); const messages = require('../utils/messages'); const getInstallCmd = require('../utils/get-install-cmd'); const output = require('../utils/output'); +const extractClassNames = require('../utils/extract-class-names'); const install = async (projectName, typescript, isNotDefaultStyle) => { const installCmd = getInstallCmd(); @@ -28,7 +32,9 @@ const install = async (projectName, typescript, isNotDefaultStyle) => { if (isNotDefaultStyle) { output.info('Installing packages for styled-components...'); - await execa(installCmd, [installDepsCmd, '-D', 'styled-components', 'babel-plugin-styled-components']); + await execa(installCmd, [installDepsCmd, 'styled-components', 'react-is']); + await execa(installCmd, [installDepsCmd, '-D', 'babel-plugin-styled-components']); + if (typescript) await execa(installCmd, [installDepsCmd, '-D', '@types/styled-components']); output.success('Installed dependencies for styled-components'); } @@ -45,6 +51,22 @@ const install = async (projectName, typescript, isNotDefaultStyle) => { }).catch((error) => output.error(error.message)); }; +const recursiveReaddir = async (root, dir, files = []) => { + const srcDirs = []; + const srcDirents = await fs.readdir(sysPath.join(root, dir), { withFileTypes: true }); + + srcDirents.forEach((dirent) => { + if (dirent.isDirectory()) srcDirs.push(`${dir}/${dirent.name}`); + if (dirent.isFile()) files.push(`${dir}/${dirent.name}`); + }); + + for (const srcDir of srcDirs) { + files = await recursiveReaddir(root, srcDir, files); + } + + return Promise.resolve(files); +} + const initForTypeScript = async (root) => { output.info('Initializing for TypeScript...'); @@ -71,14 +93,122 @@ const initForTypeScript = async (root) => { output.success('Succeed to initialize for TypeScript'); } +const compilePostCss = (str, root) => { + const tailwindcss = importFrom(root, 'tailwindcss'); + return postcss([tailwindcss(sysPath.join(root, 'tailwind.config.js'))]) + .process(str, { + from: undefined, + to: undefined, + map: false + }); +} + +const migrateTailwindToStyled = async (root) => { + const indexTailwindCss = await fs.readFile(sysPath.join(root, 'src/styles/index.css')); + const compiled = await compilePostCss(indexTailwindCss.toString(), root); + const baseCss = await compilePostCss('@tailwind base;', root).css; + + const extracted = await extractClassNames(compiled.root); + const srcAllFiles = await recursiveReaddir(root, 'src'); + const srcJsxFiles = srcAllFiles.filter(file => new RegExp(/.jsx/).test(file)); + const targetJsxFiles = srcJsxFiles.filter(file => { + const parsed = sysPath.parse(file); + const fileName = parsed.name; + if (fileName === 'dom' || fileName === 'Instructions') return file; + }); + + const elements = []; + const components = []; + const isClassName = (value) => value.name?.name === 'className'; + for (const targetJsxFile of targetJsxFiles) { + const targetFilePath = sysPath.join(root, targetJsxFile); + const source = await fs.readFile(targetFilePath); + const ast = j(source.toString()); + ast + .find(j.JSXElement) + .find(j.JSXOpeningElement) + .forEach((path) => { + if (path.value.attributes?.some(attr => isClassName(attr))) { + elements.push({ + fileName: targetJsxFile, + name: path.value?.name?.name, + startPos: path.value?.loc.start, + }) + } + }) + .find(j.JSXAttribute, (value) => isClassName(value)) + .find(j.Literal) + .forEach((path, index) => { + let cssValuesStr = ''; + const value = path.value?.value; + if (value && components.every(component => component?.classNames !== value)) { + const classNameList = value.split(' '); + classNameList.forEach((name) => { + if (extracted.classNames[`${name}`]?.__info) { + const { __rule, __source, __pseudo, __scope, __context, ...values } = extracted.classNames[`${name}`].__info; + const entries = `${Object.entries(values).map(value => `${value.join(': ')}`).join(';\n')};`; + const cssStr = __context.length > 0 + ? `${__context} {\n ${entries}\n}` + : entries; + cssValuesStr += ` ${cssStr}\n`; + } + }); + const componentName = `Component${index + 1}`; + components.push({ + id: index, + name: componentName, + fileName: targetJsxFile, + classNames: value, + body: `const ${componentName} = styled.${elements[index].name}\`\n${cssValuesStr}\`\n`, + }); + } + }); + + const newSource = ast + .find(j.JSXElement, (value) => value.openingElement?.attributes.some(v => isClassName(v))) + .replaceWith((path) => { + const attrs = path.value.openingElement?.attributes; + if (attrs && attrs.some(attr => isClassName(attr))) { + const literal = attrs.find(attr => attr?.value.type === 'Literal'); + const identifier = components.find(component => component.classNames === literal?.value.value).name; + const children = path.value?.children; + const filterdAttrs = attrs.filter(attr => !isClassName(attr)); + return j.jsxElement( + j.jsxOpeningElement(j.jsxIdentifier(identifier), filterdAttrs), + j.jsxClosingElement(j.jsxIdentifier(identifier)), children + ); + } + }) + .toSource({ lineTerminator: '\n' }); + + await fs.writeFile(targetFilePath, newSource); + } + + const prettier = importFrom(root, 'prettier'); + const prettierOptions = await prettier.resolveConfig(sysPath.join(root, '.prettierrc')); + + for (const component of components) { + let source = await fs.readFile(sysPath.join(root, component.fileName)); + if (component.id < 1) source = `import styled from 'styled-components'\n\n` + source; + source += `\n${component.body}`; + + const formatted = prettier.format(source, { ...prettierOptions, parser: 'babel' }); + await fs.writeFile(sysPath.join(root, component.fileName), formatted); + } + + await fs.writeFile(sysPath.join(root, 'src/styles/index.css'), baseCss); +} + const initForStyledComponents = async (root) => { output.info('Initializing for styled-components...'); const installCmd = getInstallCmd(); const useYarn = installCmd === 'yarn'; - const uninstallCmd = useYarn ? ['remove'] : ['uninstall']; + const uninstallCmd = useYarn ? 'remove' : 'uninstall'; + + await migrateTailwindToStyled(root); - await execa(installCmd, [...uninstallCmd, 'tailwindcss']); + await execa(installCmd, [uninstallCmd, 'tailwindcss']); await fs.remove(sysPath.join(root, 'postcss.config.js')); await fs.remove(sysPath.join(root, 'tailwind.config.js')); @@ -91,28 +221,13 @@ const initForStyledComponents = async (root) => { const newEslintRcExtends = eslintrc.extends.filter(extend => extend !== 'plugin:tailwind/recommended'); await fs.writeJSON(sysPath.join(root, '.eslintrc'), { extends: newEslintRcExtends }, { spaces: 2 }); - const indexCss = await fs.readFile(sysPath.join(__dirname, '../styles/index.css')); - await fs.writeFile(sysPath.join(root, 'src/styles/index.css'), indexCss); + // Need to lower the version of react to get styled-components to work well... + const downgradeReactCmd = useYarn ? ['upgrade', 'react@^17.0.2'] : ['install', 'react@17.0.2']; + await execa(installCmd, [...downgradeReactCmd]); output.success('Succeed to initialize for styled-components'); } -const recursiveReaddir = async (root, dir, files = []) => { - const srcDirs = []; - const srcDirents = await fs.readdir(sysPath.join(root, dir), { withFileTypes: true }); - - srcDirents.forEach((dirent) => { - if (dirent.isDirectory()) srcDirs.push(`${dir}/${dirent.name}`); - if (dirent.isFile()) files.push(`${dir}/${dirent.name}`); - }); - - for (const srcDir of srcDirs) { - files = await recursiveReaddir(root, srcDir, files); - } - - return Promise.resolve(files); -} - async function next(projectName, projectPath, projectStyle, projectOption) { output.info( `🚀 Creating ${chalk.bold(chalk.green(projectName))} using ${chalk.bold( @@ -149,9 +264,6 @@ async function next(projectName, projectPath, projectStyle, projectOption) { if (isNotDefaultStyle) { await initForStyledComponents(root); - } else { - const indexCss = await fs.readFile(sysPath.join(__dirname, '../styles/index.tailwind.css')); - await fs.writeFile(sysPath.join(root, 'src/styles/index.css'), indexCss); } if (typescript) { diff --git a/lib/styles/index.css b/lib/styles/index.css deleted file mode 100644 index bffd08e..0000000 --- a/lib/styles/index.css +++ /dev/null @@ -1,152 +0,0 @@ -* { - box-sizing: border-box; -} - -html, -body { - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, - Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, - Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; -} - -html, -body, -#__next { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - overflow: hidden; -} - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -.absolute { - position: absolute; -} - -.top-0 { - top: 0px; -} - -.left-0 { - left: 0px; -} - -.z-10 { - z-index: 10; -} - -.w-screen { - width: 100vw; -} - -.h-screen { - height: 100vh; -} - -.overflow-hidden { - overflow: hidden; -} - -.max-w-lg { - max-width: 32rem; -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem; -} - -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.text-sm { - font-size: 0.875rem; -} - -.shadow-xl { - box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), - 0 10px 10px -5px rgba(0, 0, 0, 0.04); -} - -.pointer-events-none { - pointer-events: none; -} - -.select-none { - user-select: none; -} - -@media (min-width: 768px) { - .md\:text-base { - font-size: 1rem /* 16px */; - line-height: 1.5rem /* 24px */; - } -} - -.top-8 { - top: 2rem; -} - -.left-1\/2 { - left: 50%; -} - -.text-gray-50 { - color: #f9fafb; -} - -.transform { - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-transform: translateX(var(--tw-translate-x)) - translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) - skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) - scaleY(var(--tw-scale-y)); - transform: var(--tw-transform); -} - -.-translate-x-1\/2 { - --tw-translate-x: -50%; - transform: var(--tw-transform); -} - -.hidden { - display: none; -} - -.mb-8 { - margin-bottom: 2rem; -} - -@media (min-width: 768px) { - .md\:block { - display: block; - } -} - -.tracking-wider { - letter-spacing: 0.05em; -} diff --git a/lib/styles/index.tailwind.css b/lib/styles/index.tailwind.css deleted file mode 100644 index 53d6513..0000000 --- a/lib/styles/index.tailwind.css +++ /dev/null @@ -1,19 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - * { - box-sizing: border-box; - } - - html, - body, - #__next { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - overflow: hidden; - } -} diff --git a/lib/utils/extract-class-names.js b/lib/utils/extract-class-names.js new file mode 100644 index 0000000..cba6ec9 --- /dev/null +++ b/lib/utils/extract-class-names.js @@ -0,0 +1,169 @@ +/** + * Copied from https://github.com/tailwindlabs/tailwindcss-intellisense/blob/bdb398bf80a5557b329e5b1c7f2019c58e49cd00/packages/tailwindcss-language-server/src/lib/extractClassNames.ts + */ +const selectorParser = require('postcss-selector-parser'); +const { dset } = require('dset'); +const dlv = require('dlv'); + +function isAtRule(node) { + return node.type === 'atrule'; +} + +function createSelectorFromNodes(nodes) { + if (nodes.length === 0) return null; + const selector = selectorParser.selector({ value: '' }); + for (let i = 0; i < nodes.length; i++) { + selector.append(nodes[i]); + } + return String(selector).trim(); +} + +function getClassNamesFromSelector(selector) { + const classNames = []; + const { nodes: subSelectors } = selectorParser().astSync(selector); + + for (let i = 0; i < subSelectors.length; i++) { + let subSelector = subSelectors[i]; + if (subSelector.type !== 'selector') continue; + + let scope = []; + for (let j = 0; j < subSelector.nodes.length; j++) { + let node = subSelector.nodes[j]; + let pseudo = []; + + if (node.type === 'class') { + let next = subSelector.nodes[j + 1]; + + while (next && next.type === 'pseudo') { + pseudo.push(next); + j++; + next = subSelector.nodes[j + 1]; + } + + classNames.push({ + className: node.value.trim(), + scope: createSelectorFromNodes(scope), + __rule: j === subSelector.nodes.length - 1, + __pseudo: pseudo.map(String), + }); + } + scope.push(node, ...pseudo); + } + } + + return classNames; +} + +async function process(root) { + const tree = {}; + const commonContext = {}; + + let layer; + + root.walk((node) => { + if (node.type === 'comment') { + let match = node.text + .trim() + .match(/^__tw_intellisense_layer_([a-z]+)__$/); + if (match === null) return; + layer = match[1]; + node.remove(); + return; + } + + if (node.type !== 'rule') return; + + const rule = node; + const classNames = getClassNamesFromSelector(rule.selector); + + const decls = {}; + rule.walkDecls((decl) => { + if (decls[decl.prop]) { + decls[decl.prop] = [ + ...(Array.isArray(decls[decl.prop]) + ? decls[decl.prop] + : [decls[decl.prop]]), + decl.value, + ]; + } else { + decls[decl.prop] = decl.value; + } + }); + + let p = rule; + const keys = []; + while (p.parent.type !== 'root') { + p = p.parent; + if (isAtRule(p)) { + keys.push(`@${p.name} ${p.params}`); + } + } + + for (let i = 0; i < classNames.length; i++) { + const context = keys.concat([]); + const baseKeys = classNames[i].className.split(/__TWSEP__.*?__TWSEP__/); + const contextKeys = baseKeys.slice(0, baseKeys.length - 1); + const index = []; + + const existing = dlv(tree, [...baseKeys, '__info']); + if (typeof existing !== 'undefined') { + if (Array.isArray(existing)) { + index.push(existing.length); + } else { + dset(tree, [...baseKeys, '__info'], [existing]); + index.push(1); + } + } + if (classNames[i].__rule) { + dset(tree, [...baseKeys, '__info', ...index, '__rule'], true); + + dsetEach(tree, [...baseKeys, '__info', ...index], decls); + } + dset(tree, [...baseKeys, '__info', ...index, '__source'], layer); + dset( + tree, + [...baseKeys, '__info', ...index, '__pseudo'], + classNames[i].__pseudo + ); + dset( + tree, + [...baseKeys, '__info', ...index, '__scope'], + classNames[i].scope + ); + dset( + tree, + [...baseKeys, '__info', ...index, '__context'], + context.concat([]).reverse() + ); + + // common context + context.push(...classNames[i].__pseudo.map((x) => `&${x}`)); + + for (let i = 0; i < contextKeys.length; i++) { + if (typeof commonContext[contextKeys[i]] === 'undefined') { + commonContext[contextKeys[i]] = context; + } else { + commonContext[contextKeys[i]] = intersection( + commonContext[contextKeys[i]], + context + ); + } + } + } + }); + + return { classNames: tree, context: commonContext }; +} + +function intersection(arr1, arr2) { + return arr1.filter((value) => arr2.indexOf(value) !== -1); +} + +function dsetEach(obj, keys, values) { + const k = Object.keys(values); + for (let i = 0; i < k.length; i++) { + dset(obj, [...keys, k[i]], values[k[i]]); + } +} + +module.exports = process; diff --git a/package.json b/package.json index 28780b5..4e3829c 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,15 @@ "command-exists": "^1.2.9", "commander": "^6.1.0", "create-react-app": "3.4.1", + "dlv": "^1.1.3", + "dset": "^3.1.0", "execa": "^4.0.3", "fs-extra": "^9.0.1", "hosted-git-info": "^3.0.7", - "ora": "^5.1.0" + "import-from": "^4.0.0", + "jscodeshift": "^0.13.0", + "ora": "^5.1.0", + "postcss": "^8.3.6", + "postcss-selector-parser": "^6.0.6" } } From c009be0eda98fbe82350bd8f9b6834d0d2bcb012 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Fri, 6 Aug 2021 20:54:25 +0900 Subject: [PATCH 29/60] bump version --- README.md | 7 ++----- package.json | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f7887be..b7c2360 100644 --- a/README.md +++ b/README.md @@ -9,16 +9,13 @@ Usage (choose your stack, your app name and style library): ```bash -yarn create r3f-app my-app -ts? +yarn create r3f-app my-app ? -ts? ``` or ```bash -npx create-r3f-app my-app -ts? +npx create-r3f-app my-app ? -ts? ``` - Default style is tailwind - -### TODO -- Support styled component? diff --git a/package.json b/package.json index 28780b5..46f16f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.2.2", + "version": "1.3.0", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 247ecc939c1c9577c272066347282a720799b34e Mon Sep 17 00:00:00 2001 From: onirenaud Date: Fri, 6 Aug 2021 21:15:04 +0900 Subject: [PATCH 30/60] fix --- lib/stacks/next.js | 11 +++++++---- package.json | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 6e4157b..694a046 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -151,12 +151,15 @@ const migrateTailwindToStyled = async (root) => { const classNameList = value.split(' '); classNameList.forEach((name) => { if (extracted.classNames[`${name}`]?.__info) { + output.info(`Extracting the style of .${name} ...`); const { __rule, __source, __pseudo, __scope, __context, ...values } = extracted.classNames[`${name}`].__info; const entries = `${Object.entries(values).map(value => `${value.join(': ')}`).join(';\n')};`; - const cssStr = __context.length > 0 - ? `${__context} {\n ${entries}\n}` - : entries; - cssValuesStr += ` ${cssStr}\n`; + if (__context) { + const cssStr = __context.length > 0 + ? `${__context} {\n ${entries}\n}` + : entries; + cssValuesStr += ` ${cssStr}\n`; + } } }); const componentName = `Component${index + 1}`; diff --git a/package.json b/package.json index 36b44de..6b58cd5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.3.0", + "version": "1.3.1", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 3a5c7d9167c1d26b5cba09ee12f5db31fa454f75 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Fri, 6 Aug 2021 21:15:04 +0900 Subject: [PATCH 31/60] fix --- lib/stacks/next.js | 11 +++++++---- package.json | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 6e4157b..694a046 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -151,12 +151,15 @@ const migrateTailwindToStyled = async (root) => { const classNameList = value.split(' '); classNameList.forEach((name) => { if (extracted.classNames[`${name}`]?.__info) { + output.info(`Extracting the style of .${name} ...`); const { __rule, __source, __pseudo, __scope, __context, ...values } = extracted.classNames[`${name}`].__info; const entries = `${Object.entries(values).map(value => `${value.join(': ')}`).join(';\n')};`; - const cssStr = __context.length > 0 - ? `${__context} {\n ${entries}\n}` - : entries; - cssValuesStr += ` ${cssStr}\n`; + if (__context) { + const cssStr = __context.length > 0 + ? `${__context} {\n ${entries}\n}` + : entries; + cssValuesStr += ` ${cssStr}\n`; + } } }); const componentName = `Component${index + 1}`; diff --git a/package.json b/package.json index 36b44de..6b58cd5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.3.0", + "version": "1.3.1", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From a6f0bdf98afccba22d06666e6cfa23ae0c98d3e7 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Sat, 7 Aug 2021 20:25:43 +0900 Subject: [PATCH 32/60] refactor: create `.style.jsx`, change names of the component --- lib/stacks/next.js | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 694a046..99b32c2 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -123,11 +123,16 @@ const migrateTailwindToStyled = async (root) => { if (fileName === 'dom' || fileName === 'Instructions') return file; }); + const prettier = importFrom(root, 'prettier'); + const prettierOptions = await prettier.resolveConfig(sysPath.join(root, '.prettierrc')); + const formatter = (source) => prettier.format(source, { ...prettierOptions, parser: 'babel' }); + const elements = []; const components = []; const isClassName = (value) => value.name?.name === 'className'; for (const targetJsxFile of targetJsxFiles) { const targetFilePath = sysPath.join(root, targetJsxFile); + const parsedFilePath = sysPath.parse(targetFilePath); const source = await fs.readFile(targetFilePath); const ast = j(source.toString()); ast @@ -138,7 +143,6 @@ const migrateTailwindToStyled = async (root) => { elements.push({ fileName: targetJsxFile, name: path.value?.name?.name, - startPos: path.value?.loc.start, }) } }) @@ -162,18 +166,21 @@ const migrateTailwindToStyled = async (root) => { } } }); - const componentName = `Component${index + 1}`; + const [ first, ...otherLetters ] = parsedFilePath.name; + const componentName = `${first.toUpperCase()}${otherLetters.join('')}Style${index > 0 ? index : ''}`; + const styleFilePath = targetJsxFile.replace(/.jsx/, '.style.jsx'); components.push({ id: index, name: componentName, - fileName: targetJsxFile, + filePath: targetJsxFile, + styleFilePath, classNames: value, - body: `const ${componentName} = styled.${elements[index].name}\`\n${cssValuesStr}\`\n`, + body: `export const ${componentName} = styled.${elements[index].name}\`\n${cssValuesStr}\`\n`, }); } }); - const newSource = ast + let newSource = ast .find(j.JSXElement, (value) => value.openingElement?.attributes.some(v => isClassName(v))) .replaceWith((path) => { const attrs = path.value.openingElement?.attributes; @@ -189,20 +196,26 @@ const migrateTailwindToStyled = async (root) => { } }) .toSource({ lineTerminator: '\n' }); - - await fs.writeFile(targetFilePath, newSource); + + const filteredComponents = components.filter(component => component.filePath === targetJsxFile); + const componentNames = filteredComponents.map(component => component.name); + const styleFilePath = [ ...new Set(filteredComponents.map(component => component.styleFilePath)) ] + .join('') + .replace(/src/, '@') + .replace(/.jsx/, ''); + newSource = `import { ${componentNames.join(', ')} } from '${styleFilePath}'\n` + newSource; + + const formatted = formatter(newSource); + await fs.writeFile(targetFilePath, formatted); } - const prettier = importFrom(root, 'prettier'); - const prettierOptions = await prettier.resolveConfig(sysPath.join(root, '.prettierrc')); - + let styleSource = ''; for (const component of components) { - let source = await fs.readFile(sysPath.join(root, component.fileName)); - if (component.id < 1) source = `import styled from 'styled-components'\n\n` + source; - source += `\n${component.body}`; + if (component.id < 1) styleSource = `import styled from 'styled-components'\n\n`; + styleSource += `\n${component.body}`; - const formatted = prettier.format(source, { ...prettierOptions, parser: 'babel' }); - await fs.writeFile(sysPath.join(root, component.fileName), formatted); + const formatted = formatter(styleSource); + await fs.writeFile(sysPath.join(root, component.styleFilePath), formatted); } await fs.writeFile(sysPath.join(root, 'src/styles/index.css'), baseCss); From 6ed68ea2014eb57014544ad77a74c0f871ea64a0 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 7 Aug 2021 21:35:45 +0900 Subject: [PATCH 33/60] bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b58cd5..1c67bfe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.3.1", + "version": "1.4.0", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From a11fe13a28cc1948bcdfb686ef77b48e0a28bffd Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 7 Aug 2021 21:41:33 +0900 Subject: [PATCH 34/60] better logs --- lib/stacks/next.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 99b32c2..bdce24c 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -153,9 +153,9 @@ const migrateTailwindToStyled = async (root) => { const value = path.value?.value; if (value && components.every(component => component?.classNames !== value)) { const classNameList = value.split(' '); + output.info(`Generating styled-components from tailwind`); classNameList.forEach((name) => { if (extracted.classNames[`${name}`]?.__info) { - output.info(`Extracting the style of .${name} ...`); const { __rule, __source, __pseudo, __scope, __context, ...values } = extracted.classNames[`${name}`].__info; const entries = `${Object.entries(values).map(value => `${value.join(': ')}`).join(';\n')};`; if (__context) { diff --git a/package.json b/package.json index 1c67bfe..a80a5b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.4.0", + "version": "1.4.1", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 4469c34faf544692211253486920b9b5edd24621 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Fri, 27 Aug 2021 21:31:48 +0900 Subject: [PATCH 35/60] fix: update messages --- lib/utils/check-for-update.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/utils/check-for-update.js b/lib/utils/check-for-update.js index 380feb3..f8f3944 100644 --- a/lib/utils/check-for-update.js +++ b/lib/utils/check-for-update.js @@ -15,8 +15,8 @@ module.exports = async function checkForUpdate() { switch (semver.compare(current, latest)) { case -1: const command = getInstallCmd() === 'yarn' - ? 'yarn create r3f-app my-app ' - : 'npx create-r3f-app my-app '; + ? 'yarn create r3f-app my-app ? -ts' + : 'npx create-r3f-app my-app ? -ts'; console.log(` —— New update available, run the following ${chalk.bold(command)} From fdfddd5d1493e4971737bf63aba2f23776c11fcf Mon Sep 17 00:00:00 2001 From: RenaudROHLINGER Date: Sat, 4 Dec 2021 14:02:59 +0900 Subject: [PATCH 36/60] fix glsl ts definition --- lib/stacks/next.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index bdce24c..533a6e5 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -81,6 +81,18 @@ const initForTypeScript = async (root) => { const tsConfigBaseJson = { compilerOptions: otherOptions }; + + const shader = `declare module '*.vert' { + const content: string + export default content +} + +declare module '*.frag' { + const content: string + export default content +}` + + await fs.writeFile(sysPath.join(root, './src/index.d.ts'), shader); await fs.writeJson(sysPath.join(root, 'tsconfig.json'), tsConfigBaseJson, { spaces: 2 }); await fs.remove(sysPath.join(root, 'jsconfig.json')); await fs.remove(sysPath.join(root, 'jsconfig.server.json')); From 639e76365dab297ecb6c1ebe16b029d45897a94f Mon Sep 17 00:00:00 2001 From: RenaudROHLINGER Date: Sat, 4 Dec 2021 14:03:24 +0900 Subject: [PATCH 37/60] bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a80a5b2..2d6e526 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.4.1", + "version": "1.4.2", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From 48ab11bce1c2649e80978c27a05ea2b91f8f8231 Mon Sep 17 00:00:00 2001 From: onirenaud Date: Sat, 7 Aug 2021 21:41:33 +0900 Subject: [PATCH 38/60] better logs --- lib/stacks/next.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 99b32c2..bdce24c 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -153,9 +153,9 @@ const migrateTailwindToStyled = async (root) => { const value = path.value?.value; if (value && components.every(component => component?.classNames !== value)) { const classNameList = value.split(' '); + output.info(`Generating styled-components from tailwind`); classNameList.forEach((name) => { if (extracted.classNames[`${name}`]?.__info) { - output.info(`Extracting the style of .${name} ...`); const { __rule, __source, __pseudo, __scope, __context, ...values } = extracted.classNames[`${name}`].__info; const entries = `${Object.entries(values).map(value => `${value.join(': ')}`).join(';\n')};`; if (__context) { diff --git a/package.json b/package.json index 1c67bfe..a80a5b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-r3f-app", - "version": "1.4.0", + "version": "1.4.1", "description": "The easiest and fastest way to create new 3D web projects with react and threejs.", "contributors": [ "Renaud ROHLINGER " From edf4dbba09895a18f3e536eed777d7ce3b9993e1 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Sun, 10 Apr 2022 03:12:00 +0900 Subject: [PATCH 39/60] fix: remove sample dir --- sample/foo/.editorconfig | 11 --- sample/foo/.eslintignore | 3 - sample/foo/.eslintrc | 8 -- sample/foo/.gitignore | 42 --------- sample/foo/.prettierignore | 7 -- sample/foo/.prettierrc | 18 ---- sample/foo/LICENSE | 20 ----- sample/foo/README.md | 3 - sample/foo/next.config.js | 83 ----------------- sample/foo/package.json | 53 ----------- sample/foo/postcss.config.js | 6 -- .../foo/public/icons/android-icon-192x192.png | Bin 705 -> 0 bytes .../foo/public/icons/android-icon-512x512.png | Bin 705 -> 0 bytes sample/foo/public/icons/apple-touch-icon.png | Bin 667 -> 0 bytes sample/foo/public/icons/favicon-16x16.png | Bin 427 -> 0 bytes sample/foo/public/icons/favicon-32x32.png | Bin 472 -> 0 bytes sample/foo/public/icons/favicon.ico | Bin 7406 -> 0 bytes sample/foo/public/icons/safari-pinned-tab.svg | 18 ---- sample/foo/public/icons/share.png | Bin 756 -> 0 bytes sample/foo/public/img/logo.svg | 6 -- sample/foo/public/img/scores/lighthouse.md | 1 - sample/foo/public/img/scores/lighthouse.svg | 1 - sample/foo/public/manifest.json | 29 ------ sample/foo/public/robots.txt | 0 sample/foo/sandbox.config.json | 8 -- sample/foo/src/components/canvas/Box.jsx | 35 -------- .../src/components/canvas/Shader/Shader.jsx | 59 ------------ .../components/canvas/Shader/glsl/shader.frag | 9 -- .../components/canvas/Shader/glsl/shader.vert | 5 -- .../foo/src/components/dom/Instructions.jsx | 39 -------- sample/foo/src/components/layout/canvas.jsx | 37 -------- sample/foo/src/components/layout/dom.jsx | 20 ----- sample/foo/src/config.jsx | 85 ------------------ sample/foo/src/helpers/partition.js | 13 --- sample/foo/src/helpers/store.js | 10 --- sample/foo/src/index.d.ts | 9 -- sample/foo/src/pages/404.jsx | 8 -- sample/foo/src/pages/500.jsx | 8 -- sample/foo/src/pages/_app.jsx | 42 --------- sample/foo/src/pages/box.jsx | 41 --------- sample/foo/src/pages/index.jsx | 49 ---------- sample/foo/src/styles/index.css | 19 ---- sample/foo/tailwind.config.js | 15 ---- sample/foo/tsconfig.json | 10 --- sample/hoge/.editorconfig | 11 --- sample/hoge/.eslintignore | 3 - sample/hoge/.eslintrc | 8 -- sample/hoge/.gitignore | 42 --------- sample/hoge/.prettierignore | 7 -- sample/hoge/.prettierrc | 18 ---- sample/hoge/LICENSE | 20 ----- sample/hoge/README.md | 3 - sample/hoge/next.config.js | 83 ----------------- sample/hoge/package.json | 53 ----------- sample/hoge/postcss.config.js | 6 -- .../public/icons/android-icon-192x192.png | Bin 705 -> 0 bytes .../public/icons/android-icon-512x512.png | Bin 705 -> 0 bytes sample/hoge/public/icons/apple-touch-icon.png | Bin 667 -> 0 bytes sample/hoge/public/icons/favicon-16x16.png | Bin 427 -> 0 bytes sample/hoge/public/icons/favicon-32x32.png | Bin 472 -> 0 bytes sample/hoge/public/icons/favicon.ico | Bin 7406 -> 0 bytes .../hoge/public/icons/safari-pinned-tab.svg | 18 ---- sample/hoge/public/icons/share.png | Bin 756 -> 0 bytes sample/hoge/public/img/logo.svg | 6 -- sample/hoge/public/img/scores/lighthouse.md | 1 - sample/hoge/public/img/scores/lighthouse.svg | 1 - sample/hoge/public/manifest.json | 29 ------ sample/hoge/public/robots.txt | 0 sample/hoge/sandbox.config.json | 8 -- sample/hoge/src/components/canvas/Box.jsx | 35 -------- .../src/components/canvas/Shader/Shader.jsx | 59 ------------ .../components/canvas/Shader/glsl/shader.frag | 9 -- .../components/canvas/Shader/glsl/shader.vert | 5 -- .../hoge/src/components/dom/Instructions.jsx | 39 -------- sample/hoge/src/components/layout/canvas.jsx | 37 -------- sample/hoge/src/components/layout/dom.jsx | 20 ----- sample/hoge/src/config.jsx | 85 ------------------ sample/hoge/src/helpers/partition.js | 13 --- sample/hoge/src/helpers/store.js | 10 --- sample/hoge/src/index.d.ts | 9 -- sample/hoge/src/pages/404.jsx | 8 -- sample/hoge/src/pages/500.jsx | 8 -- sample/hoge/src/pages/_app.jsx | 42 --------- sample/hoge/src/pages/box.jsx | 41 --------- sample/hoge/src/pages/index.jsx | 49 ---------- sample/hoge/src/styles/index.css | 19 ---- sample/hoge/tailwind.config.js | 15 ---- sample/hoge/tsconfig.json | 10 --- 88 files changed, 1660 deletions(-) delete mode 100644 sample/foo/.editorconfig delete mode 100644 sample/foo/.eslintignore delete mode 100644 sample/foo/.eslintrc delete mode 100644 sample/foo/.gitignore delete mode 100644 sample/foo/.prettierignore delete mode 100644 sample/foo/.prettierrc delete mode 100644 sample/foo/LICENSE delete mode 100644 sample/foo/README.md delete mode 100644 sample/foo/next.config.js delete mode 100644 sample/foo/package.json delete mode 100644 sample/foo/postcss.config.js delete mode 100644 sample/foo/public/icons/android-icon-192x192.png delete mode 100644 sample/foo/public/icons/android-icon-512x512.png delete mode 100644 sample/foo/public/icons/apple-touch-icon.png delete mode 100644 sample/foo/public/icons/favicon-16x16.png delete mode 100644 sample/foo/public/icons/favicon-32x32.png delete mode 100644 sample/foo/public/icons/favicon.ico delete mode 100644 sample/foo/public/icons/safari-pinned-tab.svg delete mode 100644 sample/foo/public/icons/share.png delete mode 100644 sample/foo/public/img/logo.svg delete mode 100644 sample/foo/public/img/scores/lighthouse.md delete mode 100644 sample/foo/public/img/scores/lighthouse.svg delete mode 100644 sample/foo/public/manifest.json delete mode 100644 sample/foo/public/robots.txt delete mode 100644 sample/foo/sandbox.config.json delete mode 100644 sample/foo/src/components/canvas/Box.jsx delete mode 100644 sample/foo/src/components/canvas/Shader/Shader.jsx delete mode 100644 sample/foo/src/components/canvas/Shader/glsl/shader.frag delete mode 100644 sample/foo/src/components/canvas/Shader/glsl/shader.vert delete mode 100644 sample/foo/src/components/dom/Instructions.jsx delete mode 100644 sample/foo/src/components/layout/canvas.jsx delete mode 100644 sample/foo/src/components/layout/dom.jsx delete mode 100644 sample/foo/src/config.jsx delete mode 100644 sample/foo/src/helpers/partition.js delete mode 100644 sample/foo/src/helpers/store.js delete mode 100644 sample/foo/src/index.d.ts delete mode 100644 sample/foo/src/pages/404.jsx delete mode 100644 sample/foo/src/pages/500.jsx delete mode 100644 sample/foo/src/pages/_app.jsx delete mode 100644 sample/foo/src/pages/box.jsx delete mode 100644 sample/foo/src/pages/index.jsx delete mode 100644 sample/foo/src/styles/index.css delete mode 100644 sample/foo/tailwind.config.js delete mode 100644 sample/foo/tsconfig.json delete mode 100644 sample/hoge/.editorconfig delete mode 100644 sample/hoge/.eslintignore delete mode 100644 sample/hoge/.eslintrc delete mode 100644 sample/hoge/.gitignore delete mode 100644 sample/hoge/.prettierignore delete mode 100644 sample/hoge/.prettierrc delete mode 100644 sample/hoge/LICENSE delete mode 100644 sample/hoge/README.md delete mode 100644 sample/hoge/next.config.js delete mode 100644 sample/hoge/package.json delete mode 100644 sample/hoge/postcss.config.js delete mode 100644 sample/hoge/public/icons/android-icon-192x192.png delete mode 100644 sample/hoge/public/icons/android-icon-512x512.png delete mode 100644 sample/hoge/public/icons/apple-touch-icon.png delete mode 100644 sample/hoge/public/icons/favicon-16x16.png delete mode 100644 sample/hoge/public/icons/favicon-32x32.png delete mode 100644 sample/hoge/public/icons/favicon.ico delete mode 100644 sample/hoge/public/icons/safari-pinned-tab.svg delete mode 100644 sample/hoge/public/icons/share.png delete mode 100644 sample/hoge/public/img/logo.svg delete mode 100644 sample/hoge/public/img/scores/lighthouse.md delete mode 100644 sample/hoge/public/img/scores/lighthouse.svg delete mode 100644 sample/hoge/public/manifest.json delete mode 100644 sample/hoge/public/robots.txt delete mode 100644 sample/hoge/sandbox.config.json delete mode 100644 sample/hoge/src/components/canvas/Box.jsx delete mode 100644 sample/hoge/src/components/canvas/Shader/Shader.jsx delete mode 100644 sample/hoge/src/components/canvas/Shader/glsl/shader.frag delete mode 100644 sample/hoge/src/components/canvas/Shader/glsl/shader.vert delete mode 100644 sample/hoge/src/components/dom/Instructions.jsx delete mode 100644 sample/hoge/src/components/layout/canvas.jsx delete mode 100644 sample/hoge/src/components/layout/dom.jsx delete mode 100644 sample/hoge/src/config.jsx delete mode 100644 sample/hoge/src/helpers/partition.js delete mode 100644 sample/hoge/src/helpers/store.js delete mode 100644 sample/hoge/src/index.d.ts delete mode 100644 sample/hoge/src/pages/404.jsx delete mode 100644 sample/hoge/src/pages/500.jsx delete mode 100644 sample/hoge/src/pages/_app.jsx delete mode 100644 sample/hoge/src/pages/box.jsx delete mode 100644 sample/hoge/src/pages/index.jsx delete mode 100644 sample/hoge/src/styles/index.css delete mode 100644 sample/hoge/tailwind.config.js delete mode 100644 sample/hoge/tsconfig.json diff --git a/sample/foo/.editorconfig b/sample/foo/.editorconfig deleted file mode 100644 index c1ac02e..0000000 --- a/sample/foo/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 2 - -[{*.json,.*.yml}] -indent_style = space -indent_size = 2 \ No newline at end of file diff --git a/sample/foo/.eslintignore b/sample/foo/.eslintignore deleted file mode 100644 index 422c391..0000000 --- a/sample/foo/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -.next -dist -node_modules/ diff --git a/sample/foo/.eslintrc b/sample/foo/.eslintrc deleted file mode 100644 index 65cf70e..0000000 --- a/sample/foo/.eslintrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["next", "prettier", "plugin:tailwind/recommended"], - "rules": { - "import/prefer-default-export": "off", - "no-console": "warn", - "no-var": "error" - } -} diff --git a/sample/foo/.gitignore b/sample/foo/.gitignore deleted file mode 100644 index 3de3a94..0000000 --- a/sample/foo/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# dependencies -/node_modules - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# vercel -.vercel - -# next-pwa -/public/workbox-*.js -/public/sw.js - -# prefer yarn than npm -package-lock.json - -report.*.json - -# .vscode Debugging -.vscode/*-debug-profile diff --git a/sample/foo/.prettierignore b/sample/foo/.prettierignore deleted file mode 100644 index 7613cd0..0000000 --- a/sample/foo/.prettierignore +++ /dev/null @@ -1,7 +0,0 @@ -build/* -dist/* -public/* -.next/* -node_modules/* -package.json -*.log diff --git a/sample/foo/.prettierrc b/sample/foo/.prettierrc deleted file mode 100644 index c5cef78..0000000 --- a/sample/foo/.prettierrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "arrowParens": "always", - "bracketSpacing": true, - "embeddedLanguageFormatting": "auto", - "htmlWhitespaceSensitivity": "css", - "insertPragma": false, - "jsxSingleQuote": true, - "printWidth": 80, - "proseWrap": "preserve", - "quoteProps": "as-needed", - "requirePragma": false, - "semi": false, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5", - "useTabs": false, - "vueIndentScriptAndStyle": false -} diff --git a/sample/foo/LICENSE b/sample/foo/LICENSE deleted file mode 100644 index ef5fd18..0000000 --- a/sample/foo/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2012-2021 Scott Chacon and others - -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: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -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. diff --git a/sample/foo/README.md b/sample/foo/README.md deleted file mode 100644 index 4ef6b0d..0000000 --- a/sample/foo/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# sample/foo - -This project was bootstrapped with [`create-r3f-app`](https://github.com/RenaudROHLINGER/create-r3f-app) \ No newline at end of file diff --git a/sample/foo/next.config.js b/sample/foo/next.config.js deleted file mode 100644 index e8000b0..0000000 --- a/sample/foo/next.config.js +++ /dev/null @@ -1,83 +0,0 @@ -const plugins = require('next-compose-plugins') -const withBundleAnalyzer = require('@next/bundle-analyzer')({ - enabled: process.env.ANALYZE === 'true', -}) - -const withOffline = require('next-offline') - -const nextConfig = { - webpack(config, { webpack, dev, isServer }) { - - // audio support - config.module.rules.push({ - test: /\.(ogg|mp3|wav|mpe?g)$/i, - exclude: config.exclude, - use: [ - { - loader: require.resolve('url-loader'), - options: { - limit: config.inlineImageLimit, - fallback: require.resolve('file-loader'), - publicPath: `${config.assetPrefix}/_next/static/images/`, - outputPath: `${isServer ? '../' : ''}static/images/`, - name: '[name]-[hash].[ext]', - esModule: config.esModule || false, - }, - }, - ], - }) - - config.module.rules.push({ - test: /\.(glsl|vs|fs|vert|frag)$/, - exclude: /node_modules/, - use: ['raw-loader', 'glslify-loader'], - }) - - return config - }, -} - -// manage i18n -if (process.env.EXPORT !== 'true') { - nextConfig.i18n = { - locales: ['en-US'], - defaultLocale: 'en-US', - } -} - -module.exports = plugins( - [ - [ - withOffline, - { - workboxOpts: { - swDest: process.env.NEXT_EXPORT - ? 'service-worker.js' - : 'static/service-worker.js', - runtimeCaching: [ - { - urlPattern: /^https?.*/, - handler: 'NetworkFirst', - options: { - cacheName: 'offlineCache', - expiration: { - maxEntries: 200, - }, - }, - }, - ], - }, - async rewrites() { - return [ - { - source: '/service-worker.js', - destination: '/_next/static/service-worker.js', - }, - ] - }, - }, - ], - withBundleAnalyzer, - ], - nextConfig -) diff --git a/sample/foo/package.json b/sample/foo/package.json deleted file mode 100644 index 3f96fa4..0000000 --- a/sample/foo/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "react-three-next", - "version": "2.0.0", - "authors": [ - "Renaud ROHLINGER " - ], - "license": "MIT", - "private": true, - "engines": { - "node": ">=14" - }, - "dependencies": { - "@babel/plugin-transform-runtime": "^7.17.0", - "@react-three/drei": "^8.16.5", - "@react-three/fiber": "^7.0.26", - "babel-plugin-glsl": "^1.0.0", - "glsl-random": "^0.0.5", - "next": "^12.1.0", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "three": "^0.138.3", - "three-stdlib": "^2.8.8", - "zustand": "^3.7.1" - }, - "devDependencies": { - "@next/bundle-analyzer": "^12.0.10", - "autoprefixer": "^10.4.2", - "eslint": "^8.8.0", - "eslint-config-next": "^12.0.10", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-tailwind": "^0.2.1", - "file-loader": "^6.2.0", - "glslify": "^7.1.1", - "glslify-loader": "^2.0.0", - "next-compose-plugins": "^2.2.1", - "next-offline": "^5.0.5", - "postcss": "^8.4.8", - "prettier": "^2.5.1", - "raw-loader": "^4.0.2", - "tailwindcss": "^3.0.18", - "url-loader": "^4.1.1" - }, - "scripts": { - "lint": "yarn prettier && yarn eslint", - "eslint": "next lint --fix --dir src", - "prettier": "prettier --list-different \"./src/**/*.{ts,tsx,md}\"", - "dev": "next dev", - "build": "next build", - "export": "EXPORT=true next build && EXPORT=true next export", - "analyze": "ANALYZE=true next build", - "start": "next start" - } -} diff --git a/sample/foo/postcss.config.js b/sample/foo/postcss.config.js deleted file mode 100644 index 33ad091..0000000 --- a/sample/foo/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/sample/foo/public/icons/android-icon-192x192.png b/sample/foo/public/icons/android-icon-192x192.png deleted file mode 100644 index 535df409b420fe37c7874b5a512262216ad2bb04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmeAS@N?(olHy`uVBq!ia0vp^2SAtuNHCOdH@*#|SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`%^}CHfsi>+KXMbNr*QZD#krZnf)e*A6UPskW@h@tc+@oLk{YzwP z!_lcmFCXpYVod(R@@M9?kD13R(+!ud{ru*lU+yZVuIX>4{GNJg`GwNrRZL~`y_vo4 zF*mm{Ffy@l2q-u-Ko|zxj7PJ}P96SX|Ml;mvv)2Y`p=#d6USe->t?)H=JT`(*0)wK zzq0d`?A>k5b&XHm{EFZHUUBV=+|~X2pH=+}Ud_npv+-@6{^I*9-T8m7o&2!+*oReu zwr{o{+rz%f(ZPiAB8!W#fG>ivRdP`(kYX@0Ff!CN03!1c12ZdAODh8dZ39Cfxnzs0K8l9i{FKbJ zO57T*zWh5Gs3E*6B%&lJv0R~`C_gPTCsm=OvLICRr~FT! z@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR&5QWn>uADe>=7`J@_R|d>3%v9gUWp5q Td~!0K3i6q!tDnm{r-UW|t7Hg_ diff --git a/sample/foo/public/icons/android-icon-512x512.png b/sample/foo/public/icons/android-icon-512x512.png deleted file mode 100644 index 535df409b420fe37c7874b5a512262216ad2bb04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmeAS@N?(olHy`uVBq!ia0vp^2SAtuNHCOdH@*#|SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`%^}CHfsi>+KXMbNr*QZD#krZnf)e*A6UPskW@h@tc+@oLk{YzwP z!_lcmFCXpYVod(R@@M9?kD13R(+!ud{ru*lU+yZVuIX>4{GNJg`GwNrRZL~`y_vo4 zF*mm{Ffy@l2q-u-Ko|zxj7PJ}P96SX|Ml;mvv)2Y`p=#d6USe->t?)H=JT`(*0)wK zzq0d`?A>k5b&XHm{EFZHUUBV=+|~X2pH=+}Ud_npv+-@6{^I*9-T8m7o&2!+*oReu zwr{o{+rz%f(ZPiAB8!W#fG>ivRdP`(kYX@0Ff!CN03!1c12ZdAODh8dZ39Cfxnzs0K8l9i{FKbJ zO57T*zWh5Gs3E*6B%&lJv0R~`C_gPTCsm=OvLICRr~FT! z@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR&5QWn>uADe>=7`J@_R|d>3%v9gUWp5q Td~!0K3i6q!tDnm{r-UW|t7Hg_ diff --git a/sample/foo/public/icons/apple-touch-icon.png b/sample/foo/public/icons/apple-touch-icon.png deleted file mode 100644 index 314a97cdc0297d44316eb5b97467882fc8a7dfe9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmeAS@N?(olHy`uVBq!ia0vp^TR@ltNH9n&i+l&9SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`%^}CHY@90N2|&i7#JNqT^vIyZoR#=(d)2-%z=lC%hs%DcJA!>`c~#QOYH3Q z0-=?=SMP4?ijL;CYgx*_U}MQ%69M-3E$^j2KYzfk$X>3(0yG!`CP~dHE4<`=cei=8 zzV!;dpzrVYUb!z@6Sw@`-PN!3%oe$Ji|Iyf$+!q&%sueBzGvQ3#}d8;x!zNASG;rX@xecdGn~J?tiGIHdY?b>-WJa_Zjmnf{I21sW_g!< ze;hXR&%MV#3U_wZ_>{BXZZEZouoqM85&xL*b$Pwwm#)=;Z)(gX&1~dFcZU~T+wy4B z|MrVZ%7guspZ?G(4cqsHgKi%N5z)O$emAGKZCnwXXAb)wf`njxgN@xNAPj~w- diff --git a/sample/foo/public/icons/favicon-16x16.png b/sample/foo/public/icons/favicon-16x16.png deleted file mode 100644 index 124c5a5e1e7f4317b3fb38f887895d5342ef6177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UASkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY0t>0)3IFPO6{&;}^Ml;rL1!tlSn|IB_MkG;gx z*OmP#BRiXw^{%5;64!{5l*E!$tK_0oAjM#0U}UIk07T{?24+^K7FMQ~+6IPJ1_smkQkS7< z$jwj5OsmAL;d$^~pj`~%RUr{2L5bxG1x5L3nK`KnC6xuK3Yi5Z$qWn?a~^-<;V2B# z&^YCP`i$q(AO>b-ZoOn~VP#?O$s)|c3N8&Mhf|o9H-{*kzH#NmkuyhRjFdh=l#!jy%6iw)s&b%Et*47)h{fsT1PRs@hQ0|~LJTe(Tj=oQR6WOug`G@%f(jb1 z-sRkEadtd$Rr`8ZSnRGX%Q)McLKaj!Kl=aw`YjKG3m8`{kZo_;FxxzT>YBZExygbP z1e;wMr!Q$~iKugTpSYu?MMYdL|K5}X!dH%HPB^l-!C1@OysbM?WCA0@4~^KGSc%ep zphHwkTq8hddb|v%EI20MVN&ZTpCOcr!XsT4pBIL!bb`8PLlC86=0?g3n~|_fbwL@)9E>BVZT?1qB5-IyypaZ7r^@uE4S^c6N3! zIXMZnT8*`}HQe9d!(y?Zy}cdf<>fd(KSx7D1GHK#Ha0e}zrT;l%1R6m4{sObX?|wtKgzd9>v_fVgT9=c9BZ1M^ZP%_A}`k?{zS}{Dz%5hVflN{i}gpb zuvyg}V(P#v^P}%4pG@poJfqM5-SWl3KL|~WT8jI*_d$pW2nYxW2qX~Tb*h_;zsZQ} zR4H*{_DHAl8g+Yn8^_1TRFCfN?xL=)4$aNYREx%R=)%GR`uh4%Utf>L#zxp|HXIxr zU|?W?YR{RO8FY7dV{mYg>dv;dHmW^OPEOF%(?j*<{QNw6dwbE+(gKd-sMegCnnHDT zHTwJe(bUw0*49?o?RFd<9#WlIQ&WRbC={z)m<0p`1Ox>Be*{GGv^0(N`};~+hLQMR zi0ghVZY5-2neOv(E}hPwq=ukGVt1MX`V@{Vl86&6=?)si48y9)Lh-Z)8n=;nYVx?( z&FVRiOqO9z9ydyfaTbF^l|0Vx$m2sT$^JhhZuGt*JxpSmPtPY@`7IIPc?xN`~Aqx&80o_l9CeIE9W_iTrQ`)WO;d+_QUV)?%;4Z zXkYyF^b|yUVs&*DMMXv6xykJ8EY8l(z;ly8Ab`BQJlx#eP<|2&2BA`8``qsRE!CLK?r(qk0jg9P cr!c0(eZZ^KrPwU7e3D_ZShSvm|Lay?0X=f`rT_o{ diff --git a/sample/foo/public/icons/safari-pinned-tab.svg b/sample/foo/public/icons/safari-pinned-tab.svg deleted file mode 100644 index 48b78e4..0000000 --- a/sample/foo/public/icons/safari-pinned-tab.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - diff --git a/sample/foo/public/icons/share.png b/sample/foo/public/icons/share.png deleted file mode 100644 index 414f49e4a0e31b00144c9d85ec2e3a93c4e26c58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmeAS@N?(olHy`uVBq!ia0y~yU{(NOCT5_>GP!rZffQ$ePlzj!27>?p|2N+~e+kH9 zED7=pW^j0RBMrn!@^*J&O5?6cVPIhD@pN$vskrs_rXw$d0uRf - - - - - \ No newline at end of file diff --git a/sample/foo/public/img/scores/lighthouse.md b/sample/foo/public/img/scores/lighthouse.md deleted file mode 100644 index 7e8db04..0000000 --- a/sample/foo/public/img/scores/lighthouse.md +++ /dev/null @@ -1 +0,0 @@ -npm install -g lighthouse-badges && lighthouse-badges --urls http://r3f-next-starter.vercel.app/ -o public/img/scores diff --git a/sample/foo/public/img/scores/lighthouse.svg b/sample/foo/public/img/scores/lighthouse.svg deleted file mode 100644 index cc6f0f7..0000000 --- a/sample/foo/public/img/scores/lighthouse.svg +++ /dev/null @@ -1 +0,0 @@ -lighthouse: 94%lighthouse94% \ No newline at end of file diff --git a/sample/foo/public/manifest.json b/sample/foo/public/manifest.json deleted file mode 100644 index 775a619..0000000 --- a/sample/foo/public/manifest.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "R3F Next Starter", - "short_name": "R3F Next Starter", - "icons": [ - { - "src": "/icons/favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon", - "purpose": "any maskable" - }, - { - "src": "/icons/android-icon-192x192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "any maskable" - }, - { - "src": "/icons/android-icon-512x512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "any maskable" - } - ], - "start_url": "/", - "scope": "/", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/sample/foo/public/robots.txt b/sample/foo/public/robots.txt deleted file mode 100644 index e69de29..0000000 diff --git a/sample/foo/sandbox.config.json b/sample/foo/sandbox.config.json deleted file mode 100644 index 784fc4d..0000000 --- a/sample/foo/sandbox.config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "infiniteLoopProtection": true, - "hardReloadOnChange": false, - "view": "browser", - "container": { - "node": "12" - } -} diff --git a/sample/foo/src/components/canvas/Box.jsx b/sample/foo/src/components/canvas/Box.jsx deleted file mode 100644 index 540c97d..0000000 --- a/sample/foo/src/components/canvas/Box.jsx +++ /dev/null @@ -1,35 +0,0 @@ -import useStore from '@/helpers/store' -import { useFrame } from '@react-three/fiber' -import { useRef, useState } from 'react' - -const BoxComponent = ({ route }) => { - const router = useStore((s) => s.router) - // This reference will give us direct access to the THREE.Mesh object - const mesh = useRef(null) - // Set up state for the hovered and active state - const [hovered, setHover] = useState(false) - // Subscribe this component to the render-loop, rotate the mesh every frame - useFrame((state, delta) => - mesh.current - ? (mesh.current.rotation.y = mesh.current.rotation.x += 0.01) - : null - ) - // Return the view, these are regular Threejs elements expressed in JSX - return ( - <> - router.push(route)} - onPointerOver={() => setHover(true)} - onPointerOut={() => setHover(false)} - scale={hovered ? 1.1 : 1} - > - - - - - - - ) -} -export default BoxComponent diff --git a/sample/foo/src/components/canvas/Shader/Shader.jsx b/sample/foo/src/components/canvas/Shader/Shader.jsx deleted file mode 100644 index d4de32a..0000000 --- a/sample/foo/src/components/canvas/Shader/Shader.jsx +++ /dev/null @@ -1,59 +0,0 @@ -import * as THREE from 'three' -import { useFrame, extend } from '@react-three/fiber' -import { useRef, useState } from 'react' -import useStore from '@/helpers/store' -import { shaderMaterial } from '@react-three/drei' - -import vertex from './glsl/shader.vert' -import fragment from './glsl/shader.frag' - -const ColorShiftMaterial = shaderMaterial( - { - time: 0, - color: new THREE.Color(0.05, 0.0, 0.025), - }, - vertex, - fragment -) - -// This is the 🔑 that HMR will renew if this file is edited -// It works for THREE.ShaderMaterial as well as for drei/shaderMaterial -// @ts-ignore -ColorShiftMaterial.key = THREE.MathUtils.generateUUID() - -extend({ ColorShiftMaterial }) - -const Shader = (props) => { - const meshRef = useRef(null) - const [hovered, setHover] = useState(false) - const router = useStore((state) => state.router) - - useFrame((state, delta) => { - if (meshRef.current) { - meshRef.current.rotation.x = meshRef.current.rotation.y += 0.01 - } - if (meshRef.current.material) { - meshRef.current.material.uniforms.time.value += - Math.sin(delta / 2) * Math.cos(delta / 2) - } - }) - - return ( - { - router.push(`/box`) - }} - onPointerOver={(e) => setHover(true)} - onPointerOut={(e) => setHover(false)} - {...props} - > - - {/* @ts-ignore */} - - - ) -} - -export default Shader diff --git a/sample/foo/src/components/canvas/Shader/glsl/shader.frag b/sample/foo/src/components/canvas/Shader/glsl/shader.frag deleted file mode 100644 index 18f342a..0000000 --- a/sample/foo/src/components/canvas/Shader/glsl/shader.frag +++ /dev/null @@ -1,9 +0,0 @@ - uniform float time; - uniform vec3 color; - varying vec2 vUv; - #pragma glslify: random = require(glsl-random) - - void main() { - gl_FragColor.rgba = vec4(0.5 + 0.3 * sin(vUv.yxx + time) + color, 1.0); - // gl_FragColor.rgba = vec4(vec3(0.), 1.); - } diff --git a/sample/foo/src/components/canvas/Shader/glsl/shader.vert b/sample/foo/src/components/canvas/Shader/glsl/shader.vert deleted file mode 100644 index 2e26c45..0000000 --- a/sample/foo/src/components/canvas/Shader/glsl/shader.vert +++ /dev/null @@ -1,5 +0,0 @@ -varying vec2 vUv; -void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); -} diff --git a/sample/foo/src/components/dom/Instructions.jsx b/sample/foo/src/components/dom/Instructions.jsx deleted file mode 100644 index 3122c0d..0000000 --- a/sample/foo/src/components/dom/Instructions.jsx +++ /dev/null @@ -1,39 +0,0 @@ -export default function Instructions() { - return ( -
-

- This is a minimal starter for Nextjs + Threejs. Click on the cube to - navigate to the `/box` page. OrbitControls is enabled by default. -

-
- Step 1 - update: - @/pages/index -
- Step 2 - update: - - {' '} - @/components/canvas/Shader/Shader{' '} - -
- Step 3 - delete: - @/pages/box -
- Step 4 -{' '} - update header: - @/config -
- Step 5 - delete: - - {' '} - @/components/dom/Instructions - -
-
- ) -} diff --git a/sample/foo/src/components/layout/canvas.jsx b/sample/foo/src/components/layout/canvas.jsx deleted file mode 100644 index 7230172..0000000 --- a/sample/foo/src/components/layout/canvas.jsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Canvas } from '@react-three/fiber' -import { OrbitControls, Preload } from '@react-three/drei' -import useStore from '@/helpers/store' -import { useEffect, useRef } from 'react' - -const LControl = () => { - const dom = useStore((state) => state.dom) - const control = useRef(null) - - useEffect(() => { - if (control) { - dom.current.style['touch-action'] = 'none' - } - }, [dom, control]) - // @ts-ignore - return -} -const LCanvas = ({ children }) => { - const dom = useStore((state) => state.dom) - - return ( - state.events.connect(dom.current)} - > - - - {children} - - ) -} - -export default LCanvas diff --git a/sample/foo/src/components/layout/dom.jsx b/sample/foo/src/components/layout/dom.jsx deleted file mode 100644 index a650a55..0000000 --- a/sample/foo/src/components/layout/dom.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import useStore from '@/helpers/store' -import { useEffect, useRef } from 'react' - -const Dom = ({ children }) => { - const ref = useRef(null) - useEffect(() => { - useStore.setState({ dom: ref }) - }, []) - - return ( -
- {children} -
- ) -} - -export default Dom diff --git a/sample/foo/src/config.jsx b/sample/foo/src/config.jsx deleted file mode 100644 index c9e216e..0000000 --- a/sample/foo/src/config.jsx +++ /dev/null @@ -1,85 +0,0 @@ -import Head from 'next/head' - -const titleDefault = 'React Three Next Starter' -const url = 'https://react-three-next.vercel.app/' -const description = - 'The easiest and fastest way to create a 3D website using React Three Fiber and NextJS' -const author = 'Author' - -const Header = ({ title = titleDefault }) => { - return ( - <> - - {/* Recommended Meta Tags */} - - - - - - - - {/* Search Engine Optimization Meta Tags */} - {title} - - - - - {/* - Facebook Open Graph meta tags - documentation: https://developers.facebook.com/docs/sharing/opengraph */} - - - - - - - - - - - - - - - - {/* Meta Tags for HTML pages on Mobile */} - {/* - */} - - - - - {/* - Twitter Summary card - documentation: https://dev.twitter.com/cards/getting-started - Be sure validate your Twitter card markup on the documentation site. */} - - - - - ) -} - -export default Header diff --git a/sample/foo/src/helpers/partition.js b/sample/foo/src/helpers/partition.js deleted file mode 100644 index 78af1af..0000000 --- a/sample/foo/src/helpers/partition.js +++ /dev/null @@ -1,13 +0,0 @@ -function partition(array, isValid) { - if (!Array.isArray(array)) { - return isValid(array) ? [[array], []] : [[], [array]]; - } - return array.reduce( - ([pass, fail], elem) => { - return isValid(elem) ? [[...pass, elem], fail] : [pass, [...fail, elem]] - }, - [[], []] - ) -} - -export default partition diff --git a/sample/foo/src/helpers/store.js b/sample/foo/src/helpers/store.js deleted file mode 100644 index fb67050..0000000 --- a/sample/foo/src/helpers/store.js +++ /dev/null @@ -1,10 +0,0 @@ -import create from 'zustand' - -const useStore = create(() => { - return { - router: null, - dom: null, - } -}) - -export default useStore diff --git a/sample/foo/src/index.d.ts b/sample/foo/src/index.d.ts deleted file mode 100644 index cac9ba5..0000000 --- a/sample/foo/src/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module '*.vert' { - const content: string - export default content -} - -declare module '*.frag' { - const content: string - export default content -} \ No newline at end of file diff --git a/sample/foo/src/pages/404.jsx b/sample/foo/src/pages/404.jsx deleted file mode 100644 index 432bed5..0000000 --- a/sample/foo/src/pages/404.jsx +++ /dev/null @@ -1,8 +0,0 @@ -// custom pages/404.jsx !! Do not remove please or it will break build -export default function Error() { - return ( - <> -

404 - Something went wrong

- - ) -} diff --git a/sample/foo/src/pages/500.jsx b/sample/foo/src/pages/500.jsx deleted file mode 100644 index a774946..0000000 --- a/sample/foo/src/pages/500.jsx +++ /dev/null @@ -1,8 +0,0 @@ -// custom pages/500.js !! Do not remove please or it will break build -export default function Error() { - return ( - <> -

500 - Something went wrong

- - ) -} diff --git a/sample/foo/src/pages/_app.jsx b/sample/foo/src/pages/_app.jsx deleted file mode 100644 index 46c6740..0000000 --- a/sample/foo/src/pages/_app.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import { useRouter } from 'next/router' -import useStore from '@/helpers/store' -import { useEffect } from 'react' -import Header from '@/config' -import Dom from '@/components/layout/dom' -import partition from '@/helpers/partition' -import '@/styles/index.css' -import dynamic from 'next/dynamic' - -const LCanvas = dynamic(() => import('@/components/layout/canvas'), { - ssr: false, -}) - -const Balance = ({ child }) => { - const [r3f, dom] = partition(child, (c) => c.props.r3f === true) - - return ( - <> - {dom} - {r3f} - - ) -} - -function App({ Component, pageProps = { title: 'index' } }) { - const router = useRouter() - - useEffect(() => { - useStore.setState({ router }) - }, [router]) - - const child = Component(pageProps).props.children - - return ( - <> -
- - - ) -} - -export default App diff --git a/sample/foo/src/pages/box.jsx b/sample/foo/src/pages/box.jsx deleted file mode 100644 index e8862a3..0000000 --- a/sample/foo/src/pages/box.jsx +++ /dev/null @@ -1,41 +0,0 @@ -import Instructions from '@/components/dom/Instructions' -import dynamic from 'next/dynamic' - -const Box = dynamic(() => import('@/components/canvas/Box'), { - ssr: false, -}) - -const DOM = () => { - return ( - // Step 5 - delete Instructions components - - ) -} - -const R3F = () => { - return ( - <> - - - ) -} - -const Page = () => { - return ( - <> - - {/* @ts-ignore */} - - - ) -} - -export default Page - -export async function getStaticProps() { - return { - props: { - title: 'Box', - }, - } -} diff --git a/sample/foo/src/pages/index.jsx b/sample/foo/src/pages/index.jsx deleted file mode 100644 index ddf6389..0000000 --- a/sample/foo/src/pages/index.jsx +++ /dev/null @@ -1,49 +0,0 @@ -import dynamic from 'next/dynamic' -// Step 5 - delete Instructions components -import Instructions from '@/components/dom/Instructions' -// import Shader from '@/components/canvas/Shader/Shader' - -// Dynamic import is used to prevent a payload when the website start that will include threejs r3f etc.. -// WARNING ! errors might get obfuscated by using dynamic import. -// If something goes wrong go back to a static import to show the error. -// https://github.com/pmndrs/react-three-next/issues/49 -const Shader = dynamic(() => import('@/components/canvas/Shader/Shader'), { - ssr: false, -}) - -// dom components goes here -const DOM = () => { - return ( - // Step 5 - delete Instructions components - - ) -} - -// canvas components goes here -const R3F = () => { - return ( - <> - - - ) -} - -const Page = () => { - return ( - <> - - {/* @ts-ignore */} - - - ) -} - -export default Page - -export async function getStaticProps() { - return { - props: { - title: 'Index', - }, - } -} diff --git a/sample/foo/src/styles/index.css b/sample/foo/src/styles/index.css deleted file mode 100644 index 53d6513..0000000 --- a/sample/foo/src/styles/index.css +++ /dev/null @@ -1,19 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - * { - box-sizing: border-box; - } - - html, - body, - #__next { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - overflow: hidden; - } -} diff --git a/sample/foo/tailwind.config.js b/sample/foo/tailwind.config.js deleted file mode 100644 index c12f7da..0000000 --- a/sample/foo/tailwind.config.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - mode: 'jit', - content: [ - './src/pages/**/*.{js,ts,jsx,tsx}', - './src/components/**/*.{js,ts,jsx,tsx}', - ], // remove unused styles in production - darkMode: 'media', // or 'media' or 'class' - theme: { - extend: {}, - }, - variants: { - extend: {}, - }, - plugins: [], -} diff --git a/sample/foo/tsconfig.json b/sample/foo/tsconfig.json deleted file mode 100644 index d5329ef..0000000 --- a/sample/foo/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": [ - "src/*" - ] - } - } -} diff --git a/sample/hoge/.editorconfig b/sample/hoge/.editorconfig deleted file mode 100644 index c1ac02e..0000000 --- a/sample/hoge/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 2 - -[{*.json,.*.yml}] -indent_style = space -indent_size = 2 \ No newline at end of file diff --git a/sample/hoge/.eslintignore b/sample/hoge/.eslintignore deleted file mode 100644 index 422c391..0000000 --- a/sample/hoge/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -.next -dist -node_modules/ diff --git a/sample/hoge/.eslintrc b/sample/hoge/.eslintrc deleted file mode 100644 index 65cf70e..0000000 --- a/sample/hoge/.eslintrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["next", "prettier", "plugin:tailwind/recommended"], - "rules": { - "import/prefer-default-export": "off", - "no-console": "warn", - "no-var": "error" - } -} diff --git a/sample/hoge/.gitignore b/sample/hoge/.gitignore deleted file mode 100644 index 3de3a94..0000000 --- a/sample/hoge/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# dependencies -/node_modules - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# vercel -.vercel - -# next-pwa -/public/workbox-*.js -/public/sw.js - -# prefer yarn than npm -package-lock.json - -report.*.json - -# .vscode Debugging -.vscode/*-debug-profile diff --git a/sample/hoge/.prettierignore b/sample/hoge/.prettierignore deleted file mode 100644 index 7613cd0..0000000 --- a/sample/hoge/.prettierignore +++ /dev/null @@ -1,7 +0,0 @@ -build/* -dist/* -public/* -.next/* -node_modules/* -package.json -*.log diff --git a/sample/hoge/.prettierrc b/sample/hoge/.prettierrc deleted file mode 100644 index c5cef78..0000000 --- a/sample/hoge/.prettierrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "arrowParens": "always", - "bracketSpacing": true, - "embeddedLanguageFormatting": "auto", - "htmlWhitespaceSensitivity": "css", - "insertPragma": false, - "jsxSingleQuote": true, - "printWidth": 80, - "proseWrap": "preserve", - "quoteProps": "as-needed", - "requirePragma": false, - "semi": false, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5", - "useTabs": false, - "vueIndentScriptAndStyle": false -} diff --git a/sample/hoge/LICENSE b/sample/hoge/LICENSE deleted file mode 100644 index ef5fd18..0000000 --- a/sample/hoge/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2012-2021 Scott Chacon and others - -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: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -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. diff --git a/sample/hoge/README.md b/sample/hoge/README.md deleted file mode 100644 index 972bbf3..0000000 --- a/sample/hoge/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# sample/hoge - -This project was bootstrapped with [`create-r3f-app`](https://github.com/RenaudROHLINGER/create-r3f-app) \ No newline at end of file diff --git a/sample/hoge/next.config.js b/sample/hoge/next.config.js deleted file mode 100644 index e8000b0..0000000 --- a/sample/hoge/next.config.js +++ /dev/null @@ -1,83 +0,0 @@ -const plugins = require('next-compose-plugins') -const withBundleAnalyzer = require('@next/bundle-analyzer')({ - enabled: process.env.ANALYZE === 'true', -}) - -const withOffline = require('next-offline') - -const nextConfig = { - webpack(config, { webpack, dev, isServer }) { - - // audio support - config.module.rules.push({ - test: /\.(ogg|mp3|wav|mpe?g)$/i, - exclude: config.exclude, - use: [ - { - loader: require.resolve('url-loader'), - options: { - limit: config.inlineImageLimit, - fallback: require.resolve('file-loader'), - publicPath: `${config.assetPrefix}/_next/static/images/`, - outputPath: `${isServer ? '../' : ''}static/images/`, - name: '[name]-[hash].[ext]', - esModule: config.esModule || false, - }, - }, - ], - }) - - config.module.rules.push({ - test: /\.(glsl|vs|fs|vert|frag)$/, - exclude: /node_modules/, - use: ['raw-loader', 'glslify-loader'], - }) - - return config - }, -} - -// manage i18n -if (process.env.EXPORT !== 'true') { - nextConfig.i18n = { - locales: ['en-US'], - defaultLocale: 'en-US', - } -} - -module.exports = plugins( - [ - [ - withOffline, - { - workboxOpts: { - swDest: process.env.NEXT_EXPORT - ? 'service-worker.js' - : 'static/service-worker.js', - runtimeCaching: [ - { - urlPattern: /^https?.*/, - handler: 'NetworkFirst', - options: { - cacheName: 'offlineCache', - expiration: { - maxEntries: 200, - }, - }, - }, - ], - }, - async rewrites() { - return [ - { - source: '/service-worker.js', - destination: '/_next/static/service-worker.js', - }, - ] - }, - }, - ], - withBundleAnalyzer, - ], - nextConfig -) diff --git a/sample/hoge/package.json b/sample/hoge/package.json deleted file mode 100644 index 3f96fa4..0000000 --- a/sample/hoge/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "react-three-next", - "version": "2.0.0", - "authors": [ - "Renaud ROHLINGER " - ], - "license": "MIT", - "private": true, - "engines": { - "node": ">=14" - }, - "dependencies": { - "@babel/plugin-transform-runtime": "^7.17.0", - "@react-three/drei": "^8.16.5", - "@react-three/fiber": "^7.0.26", - "babel-plugin-glsl": "^1.0.0", - "glsl-random": "^0.0.5", - "next": "^12.1.0", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "three": "^0.138.3", - "three-stdlib": "^2.8.8", - "zustand": "^3.7.1" - }, - "devDependencies": { - "@next/bundle-analyzer": "^12.0.10", - "autoprefixer": "^10.4.2", - "eslint": "^8.8.0", - "eslint-config-next": "^12.0.10", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-tailwind": "^0.2.1", - "file-loader": "^6.2.0", - "glslify": "^7.1.1", - "glslify-loader": "^2.0.0", - "next-compose-plugins": "^2.2.1", - "next-offline": "^5.0.5", - "postcss": "^8.4.8", - "prettier": "^2.5.1", - "raw-loader": "^4.0.2", - "tailwindcss": "^3.0.18", - "url-loader": "^4.1.1" - }, - "scripts": { - "lint": "yarn prettier && yarn eslint", - "eslint": "next lint --fix --dir src", - "prettier": "prettier --list-different \"./src/**/*.{ts,tsx,md}\"", - "dev": "next dev", - "build": "next build", - "export": "EXPORT=true next build && EXPORT=true next export", - "analyze": "ANALYZE=true next build", - "start": "next start" - } -} diff --git a/sample/hoge/postcss.config.js b/sample/hoge/postcss.config.js deleted file mode 100644 index 33ad091..0000000 --- a/sample/hoge/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/sample/hoge/public/icons/android-icon-192x192.png b/sample/hoge/public/icons/android-icon-192x192.png deleted file mode 100644 index 535df409b420fe37c7874b5a512262216ad2bb04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmeAS@N?(olHy`uVBq!ia0vp^2SAtuNHCOdH@*#|SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`%^}CHfsi>+KXMbNr*QZD#krZnf)e*A6UPskW@h@tc+@oLk{YzwP z!_lcmFCXpYVod(R@@M9?kD13R(+!ud{ru*lU+yZVuIX>4{GNJg`GwNrRZL~`y_vo4 zF*mm{Ffy@l2q-u-Ko|zxj7PJ}P96SX|Ml;mvv)2Y`p=#d6USe->t?)H=JT`(*0)wK zzq0d`?A>k5b&XHm{EFZHUUBV=+|~X2pH=+}Ud_npv+-@6{^I*9-T8m7o&2!+*oReu zwr{o{+rz%f(ZPiAB8!W#fG>ivRdP`(kYX@0Ff!CN03!1c12ZdAODh8dZ39Cfxnzs0K8l9i{FKbJ zO57T*zWh5Gs3E*6B%&lJv0R~`C_gPTCsm=OvLICRr~FT! z@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR&5QWn>uADe>=7`J@_R|d>3%v9gUWp5q Td~!0K3i6q!tDnm{r-UW|t7Hg_ diff --git a/sample/hoge/public/icons/android-icon-512x512.png b/sample/hoge/public/icons/android-icon-512x512.png deleted file mode 100644 index 535df409b420fe37c7874b5a512262216ad2bb04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmeAS@N?(olHy`uVBq!ia0vp^2SAtuNHCOdH@*#|SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`%^}CHfsi>+KXMbNr*QZD#krZnf)e*A6UPskW@h@tc+@oLk{YzwP z!_lcmFCXpYVod(R@@M9?kD13R(+!ud{ru*lU+yZVuIX>4{GNJg`GwNrRZL~`y_vo4 zF*mm{Ffy@l2q-u-Ko|zxj7PJ}P96SX|Ml;mvv)2Y`p=#d6USe->t?)H=JT`(*0)wK zzq0d`?A>k5b&XHm{EFZHUUBV=+|~X2pH=+}Ud_npv+-@6{^I*9-T8m7o&2!+*oReu zwr{o{+rz%f(ZPiAB8!W#fG>ivRdP`(kYX@0Ff!CN03!1c12ZdAODh8dZ39Cfxnzs0K8l9i{FKbJ zO57T*zWh5Gs3E*6B%&lJv0R~`C_gPTCsm=OvLICRr~FT! z@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR&5QWn>uADe>=7`J@_R|d>3%v9gUWp5q Td~!0K3i6q!tDnm{r-UW|t7Hg_ diff --git a/sample/hoge/public/icons/apple-touch-icon.png b/sample/hoge/public/icons/apple-touch-icon.png deleted file mode 100644 index 314a97cdc0297d44316eb5b97467882fc8a7dfe9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmeAS@N?(olHy`uVBq!ia0vp^TR@ltNH9n&i+l&9SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`%^}CHY@90N2|&i7#JNqT^vIyZoR#=(d)2-%z=lC%hs%DcJA!>`c~#QOYH3Q z0-=?=SMP4?ijL;CYgx*_U}MQ%69M-3E$^j2KYzfk$X>3(0yG!`CP~dHE4<`=cei=8 zzV!;dpzrVYUb!z@6Sw@`-PN!3%oe$Ji|Iyf$+!q&%sueBzGvQ3#}d8;x!zNASG;rX@xecdGn~J?tiGIHdY?b>-WJa_Zjmnf{I21sW_g!< ze;hXR&%MV#3U_wZ_>{BXZZEZouoqM85&xL*b$Pwwm#)=;Z)(gX&1~dFcZU~T+wy4B z|MrVZ%7guspZ?G(4cqsHgKi%N5z)O$emAGKZCnwXXAb)wf`njxgN@xNAPj~w- diff --git a/sample/hoge/public/icons/favicon-16x16.png b/sample/hoge/public/icons/favicon-16x16.png deleted file mode 100644 index 124c5a5e1e7f4317b3fb38f887895d5342ef6177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UASkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY0t>0)3IFPO6{&;}^Ml;rL1!tlSn|IB_MkG;gx z*OmP#BRiXw^{%5;64!{5l*E!$tK_0oAjM#0U}UIk07T{?24+^K7FMQ~+6IPJ1_smkQkS7< z$jwj5OsmAL;d$^~pj`~%RUr{2L5bxG1x5L3nK`KnC6xuK3Yi5Z$qWn?a~^-<;V2B# z&^YCP`i$q(AO>b-ZoOn~VP#?O$s)|c3N8&Mhf|o9H-{*kzH#NmkuyhRjFdh=l#!jy%6iw)s&b%Et*47)h{fsT1PRs@hQ0|~LJTe(Tj=oQR6WOug`G@%f(jb1 z-sRkEadtd$Rr`8ZSnRGX%Q)McLKaj!Kl=aw`YjKG3m8`{kZo_;FxxzT>YBZExygbP z1e;wMr!Q$~iKugTpSYu?MMYdL|K5}X!dH%HPB^l-!C1@OysbM?WCA0@4~^KGSc%ep zphHwkTq8hddb|v%EI20MVN&ZTpCOcr!XsT4pBIL!bb`8PLlC86=0?g3n~|_fbwL@)9E>BVZT?1qB5-IyypaZ7r^@uE4S^c6N3! zIXMZnT8*`}HQe9d!(y?Zy}cdf<>fd(KSx7D1GHK#Ha0e}zrT;l%1R6m4{sObX?|wtKgzd9>v_fVgT9=c9BZ1M^ZP%_A}`k?{zS}{Dz%5hVflN{i}gpb zuvyg}V(P#v^P}%4pG@poJfqM5-SWl3KL|~WT8jI*_d$pW2nYxW2qX~Tb*h_;zsZQ} zR4H*{_DHAl8g+Yn8^_1TRFCfN?xL=)4$aNYREx%R=)%GR`uh4%Utf>L#zxp|HXIxr zU|?W?YR{RO8FY7dV{mYg>dv;dHmW^OPEOF%(?j*<{QNw6dwbE+(gKd-sMegCnnHDT zHTwJe(bUw0*49?o?RFd<9#WlIQ&WRbC={z)m<0p`1Ox>Be*{GGv^0(N`};~+hLQMR zi0ghVZY5-2neOv(E}hPwq=ukGVt1MX`V@{Vl86&6=?)si48y9)Lh-Z)8n=;nYVx?( z&FVRiOqO9z9ydyfaTbF^l|0Vx$m2sT$^JhhZuGt*JxpSmPtPY@`7IIPc?xN`~Aqx&80o_l9CeIE9W_iTrQ`)WO;d+_QUV)?%;4Z zXkYyF^b|yUVs&*DMMXv6xykJ8EY8l(z;ly8Ab`BQJlx#eP<|2&2BA`8``qsRE!CLK?r(qk0jg9P cr!c0(eZZ^KrPwU7e3D_ZShSvm|Lay?0X=f`rT_o{ diff --git a/sample/hoge/public/icons/safari-pinned-tab.svg b/sample/hoge/public/icons/safari-pinned-tab.svg deleted file mode 100644 index 48b78e4..0000000 --- a/sample/hoge/public/icons/safari-pinned-tab.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - diff --git a/sample/hoge/public/icons/share.png b/sample/hoge/public/icons/share.png deleted file mode 100644 index 414f49e4a0e31b00144c9d85ec2e3a93c4e26c58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmeAS@N?(olHy`uVBq!ia0y~yU{(NOCT5_>GP!rZffQ$ePlzj!27>?p|2N+~e+kH9 zED7=pW^j0RBMrn!@^*J&O5?6cVPIhD@pN$vskrs_rXw$d0uRf - - - - - \ No newline at end of file diff --git a/sample/hoge/public/img/scores/lighthouse.md b/sample/hoge/public/img/scores/lighthouse.md deleted file mode 100644 index 7e8db04..0000000 --- a/sample/hoge/public/img/scores/lighthouse.md +++ /dev/null @@ -1 +0,0 @@ -npm install -g lighthouse-badges && lighthouse-badges --urls http://r3f-next-starter.vercel.app/ -o public/img/scores diff --git a/sample/hoge/public/img/scores/lighthouse.svg b/sample/hoge/public/img/scores/lighthouse.svg deleted file mode 100644 index cc6f0f7..0000000 --- a/sample/hoge/public/img/scores/lighthouse.svg +++ /dev/null @@ -1 +0,0 @@ -lighthouse: 94%lighthouse94% \ No newline at end of file diff --git a/sample/hoge/public/manifest.json b/sample/hoge/public/manifest.json deleted file mode 100644 index 775a619..0000000 --- a/sample/hoge/public/manifest.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "R3F Next Starter", - "short_name": "R3F Next Starter", - "icons": [ - { - "src": "/icons/favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon", - "purpose": "any maskable" - }, - { - "src": "/icons/android-icon-192x192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "any maskable" - }, - { - "src": "/icons/android-icon-512x512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "any maskable" - } - ], - "start_url": "/", - "scope": "/", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/sample/hoge/public/robots.txt b/sample/hoge/public/robots.txt deleted file mode 100644 index e69de29..0000000 diff --git a/sample/hoge/sandbox.config.json b/sample/hoge/sandbox.config.json deleted file mode 100644 index 784fc4d..0000000 --- a/sample/hoge/sandbox.config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "infiniteLoopProtection": true, - "hardReloadOnChange": false, - "view": "browser", - "container": { - "node": "12" - } -} diff --git a/sample/hoge/src/components/canvas/Box.jsx b/sample/hoge/src/components/canvas/Box.jsx deleted file mode 100644 index 540c97d..0000000 --- a/sample/hoge/src/components/canvas/Box.jsx +++ /dev/null @@ -1,35 +0,0 @@ -import useStore from '@/helpers/store' -import { useFrame } from '@react-three/fiber' -import { useRef, useState } from 'react' - -const BoxComponent = ({ route }) => { - const router = useStore((s) => s.router) - // This reference will give us direct access to the THREE.Mesh object - const mesh = useRef(null) - // Set up state for the hovered and active state - const [hovered, setHover] = useState(false) - // Subscribe this component to the render-loop, rotate the mesh every frame - useFrame((state, delta) => - mesh.current - ? (mesh.current.rotation.y = mesh.current.rotation.x += 0.01) - : null - ) - // Return the view, these are regular Threejs elements expressed in JSX - return ( - <> - router.push(route)} - onPointerOver={() => setHover(true)} - onPointerOut={() => setHover(false)} - scale={hovered ? 1.1 : 1} - > - - - - - - - ) -} -export default BoxComponent diff --git a/sample/hoge/src/components/canvas/Shader/Shader.jsx b/sample/hoge/src/components/canvas/Shader/Shader.jsx deleted file mode 100644 index d4de32a..0000000 --- a/sample/hoge/src/components/canvas/Shader/Shader.jsx +++ /dev/null @@ -1,59 +0,0 @@ -import * as THREE from 'three' -import { useFrame, extend } from '@react-three/fiber' -import { useRef, useState } from 'react' -import useStore from '@/helpers/store' -import { shaderMaterial } from '@react-three/drei' - -import vertex from './glsl/shader.vert' -import fragment from './glsl/shader.frag' - -const ColorShiftMaterial = shaderMaterial( - { - time: 0, - color: new THREE.Color(0.05, 0.0, 0.025), - }, - vertex, - fragment -) - -// This is the 🔑 that HMR will renew if this file is edited -// It works for THREE.ShaderMaterial as well as for drei/shaderMaterial -// @ts-ignore -ColorShiftMaterial.key = THREE.MathUtils.generateUUID() - -extend({ ColorShiftMaterial }) - -const Shader = (props) => { - const meshRef = useRef(null) - const [hovered, setHover] = useState(false) - const router = useStore((state) => state.router) - - useFrame((state, delta) => { - if (meshRef.current) { - meshRef.current.rotation.x = meshRef.current.rotation.y += 0.01 - } - if (meshRef.current.material) { - meshRef.current.material.uniforms.time.value += - Math.sin(delta / 2) * Math.cos(delta / 2) - } - }) - - return ( - { - router.push(`/box`) - }} - onPointerOver={(e) => setHover(true)} - onPointerOut={(e) => setHover(false)} - {...props} - > - - {/* @ts-ignore */} - - - ) -} - -export default Shader diff --git a/sample/hoge/src/components/canvas/Shader/glsl/shader.frag b/sample/hoge/src/components/canvas/Shader/glsl/shader.frag deleted file mode 100644 index 18f342a..0000000 --- a/sample/hoge/src/components/canvas/Shader/glsl/shader.frag +++ /dev/null @@ -1,9 +0,0 @@ - uniform float time; - uniform vec3 color; - varying vec2 vUv; - #pragma glslify: random = require(glsl-random) - - void main() { - gl_FragColor.rgba = vec4(0.5 + 0.3 * sin(vUv.yxx + time) + color, 1.0); - // gl_FragColor.rgba = vec4(vec3(0.), 1.); - } diff --git a/sample/hoge/src/components/canvas/Shader/glsl/shader.vert b/sample/hoge/src/components/canvas/Shader/glsl/shader.vert deleted file mode 100644 index 2e26c45..0000000 --- a/sample/hoge/src/components/canvas/Shader/glsl/shader.vert +++ /dev/null @@ -1,5 +0,0 @@ -varying vec2 vUv; -void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); -} diff --git a/sample/hoge/src/components/dom/Instructions.jsx b/sample/hoge/src/components/dom/Instructions.jsx deleted file mode 100644 index 3122c0d..0000000 --- a/sample/hoge/src/components/dom/Instructions.jsx +++ /dev/null @@ -1,39 +0,0 @@ -export default function Instructions() { - return ( -
-

- This is a minimal starter for Nextjs + Threejs. Click on the cube to - navigate to the `/box` page. OrbitControls is enabled by default. -

-
- Step 1 - update: - @/pages/index -
- Step 2 - update: - - {' '} - @/components/canvas/Shader/Shader{' '} - -
- Step 3 - delete: - @/pages/box -
- Step 4 -{' '} - update header: - @/config -
- Step 5 - delete: - - {' '} - @/components/dom/Instructions - -
-
- ) -} diff --git a/sample/hoge/src/components/layout/canvas.jsx b/sample/hoge/src/components/layout/canvas.jsx deleted file mode 100644 index 7230172..0000000 --- a/sample/hoge/src/components/layout/canvas.jsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Canvas } from '@react-three/fiber' -import { OrbitControls, Preload } from '@react-three/drei' -import useStore from '@/helpers/store' -import { useEffect, useRef } from 'react' - -const LControl = () => { - const dom = useStore((state) => state.dom) - const control = useRef(null) - - useEffect(() => { - if (control) { - dom.current.style['touch-action'] = 'none' - } - }, [dom, control]) - // @ts-ignore - return -} -const LCanvas = ({ children }) => { - const dom = useStore((state) => state.dom) - - return ( - state.events.connect(dom.current)} - > - - - {children} - - ) -} - -export default LCanvas diff --git a/sample/hoge/src/components/layout/dom.jsx b/sample/hoge/src/components/layout/dom.jsx deleted file mode 100644 index a650a55..0000000 --- a/sample/hoge/src/components/layout/dom.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import useStore from '@/helpers/store' -import { useEffect, useRef } from 'react' - -const Dom = ({ children }) => { - const ref = useRef(null) - useEffect(() => { - useStore.setState({ dom: ref }) - }, []) - - return ( -
- {children} -
- ) -} - -export default Dom diff --git a/sample/hoge/src/config.jsx b/sample/hoge/src/config.jsx deleted file mode 100644 index c9e216e..0000000 --- a/sample/hoge/src/config.jsx +++ /dev/null @@ -1,85 +0,0 @@ -import Head from 'next/head' - -const titleDefault = 'React Three Next Starter' -const url = 'https://react-three-next.vercel.app/' -const description = - 'The easiest and fastest way to create a 3D website using React Three Fiber and NextJS' -const author = 'Author' - -const Header = ({ title = titleDefault }) => { - return ( - <> - - {/* Recommended Meta Tags */} - - - - - - - - {/* Search Engine Optimization Meta Tags */} - {title} - - - - - {/* - Facebook Open Graph meta tags - documentation: https://developers.facebook.com/docs/sharing/opengraph */} - - - - - - - - - - - - - - - - {/* Meta Tags for HTML pages on Mobile */} - {/* - */} - - - - - {/* - Twitter Summary card - documentation: https://dev.twitter.com/cards/getting-started - Be sure validate your Twitter card markup on the documentation site. */} - - - - - ) -} - -export default Header diff --git a/sample/hoge/src/helpers/partition.js b/sample/hoge/src/helpers/partition.js deleted file mode 100644 index 78af1af..0000000 --- a/sample/hoge/src/helpers/partition.js +++ /dev/null @@ -1,13 +0,0 @@ -function partition(array, isValid) { - if (!Array.isArray(array)) { - return isValid(array) ? [[array], []] : [[], [array]]; - } - return array.reduce( - ([pass, fail], elem) => { - return isValid(elem) ? [[...pass, elem], fail] : [pass, [...fail, elem]] - }, - [[], []] - ) -} - -export default partition diff --git a/sample/hoge/src/helpers/store.js b/sample/hoge/src/helpers/store.js deleted file mode 100644 index fb67050..0000000 --- a/sample/hoge/src/helpers/store.js +++ /dev/null @@ -1,10 +0,0 @@ -import create from 'zustand' - -const useStore = create(() => { - return { - router: null, - dom: null, - } -}) - -export default useStore diff --git a/sample/hoge/src/index.d.ts b/sample/hoge/src/index.d.ts deleted file mode 100644 index cac9ba5..0000000 --- a/sample/hoge/src/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module '*.vert' { - const content: string - export default content -} - -declare module '*.frag' { - const content: string - export default content -} \ No newline at end of file diff --git a/sample/hoge/src/pages/404.jsx b/sample/hoge/src/pages/404.jsx deleted file mode 100644 index 432bed5..0000000 --- a/sample/hoge/src/pages/404.jsx +++ /dev/null @@ -1,8 +0,0 @@ -// custom pages/404.jsx !! Do not remove please or it will break build -export default function Error() { - return ( - <> -

404 - Something went wrong

- - ) -} diff --git a/sample/hoge/src/pages/500.jsx b/sample/hoge/src/pages/500.jsx deleted file mode 100644 index a774946..0000000 --- a/sample/hoge/src/pages/500.jsx +++ /dev/null @@ -1,8 +0,0 @@ -// custom pages/500.js !! Do not remove please or it will break build -export default function Error() { - return ( - <> -

500 - Something went wrong

- - ) -} diff --git a/sample/hoge/src/pages/_app.jsx b/sample/hoge/src/pages/_app.jsx deleted file mode 100644 index 46c6740..0000000 --- a/sample/hoge/src/pages/_app.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import { useRouter } from 'next/router' -import useStore from '@/helpers/store' -import { useEffect } from 'react' -import Header from '@/config' -import Dom from '@/components/layout/dom' -import partition from '@/helpers/partition' -import '@/styles/index.css' -import dynamic from 'next/dynamic' - -const LCanvas = dynamic(() => import('@/components/layout/canvas'), { - ssr: false, -}) - -const Balance = ({ child }) => { - const [r3f, dom] = partition(child, (c) => c.props.r3f === true) - - return ( - <> - {dom} - {r3f} - - ) -} - -function App({ Component, pageProps = { title: 'index' } }) { - const router = useRouter() - - useEffect(() => { - useStore.setState({ router }) - }, [router]) - - const child = Component(pageProps).props.children - - return ( - <> -
- - - ) -} - -export default App diff --git a/sample/hoge/src/pages/box.jsx b/sample/hoge/src/pages/box.jsx deleted file mode 100644 index e8862a3..0000000 --- a/sample/hoge/src/pages/box.jsx +++ /dev/null @@ -1,41 +0,0 @@ -import Instructions from '@/components/dom/Instructions' -import dynamic from 'next/dynamic' - -const Box = dynamic(() => import('@/components/canvas/Box'), { - ssr: false, -}) - -const DOM = () => { - return ( - // Step 5 - delete Instructions components - - ) -} - -const R3F = () => { - return ( - <> - - - ) -} - -const Page = () => { - return ( - <> - - {/* @ts-ignore */} - - - ) -} - -export default Page - -export async function getStaticProps() { - return { - props: { - title: 'Box', - }, - } -} diff --git a/sample/hoge/src/pages/index.jsx b/sample/hoge/src/pages/index.jsx deleted file mode 100644 index ddf6389..0000000 --- a/sample/hoge/src/pages/index.jsx +++ /dev/null @@ -1,49 +0,0 @@ -import dynamic from 'next/dynamic' -// Step 5 - delete Instructions components -import Instructions from '@/components/dom/Instructions' -// import Shader from '@/components/canvas/Shader/Shader' - -// Dynamic import is used to prevent a payload when the website start that will include threejs r3f etc.. -// WARNING ! errors might get obfuscated by using dynamic import. -// If something goes wrong go back to a static import to show the error. -// https://github.com/pmndrs/react-three-next/issues/49 -const Shader = dynamic(() => import('@/components/canvas/Shader/Shader'), { - ssr: false, -}) - -// dom components goes here -const DOM = () => { - return ( - // Step 5 - delete Instructions components - - ) -} - -// canvas components goes here -const R3F = () => { - return ( - <> - - - ) -} - -const Page = () => { - return ( - <> - - {/* @ts-ignore */} - - - ) -} - -export default Page - -export async function getStaticProps() { - return { - props: { - title: 'Index', - }, - } -} diff --git a/sample/hoge/src/styles/index.css b/sample/hoge/src/styles/index.css deleted file mode 100644 index 53d6513..0000000 --- a/sample/hoge/src/styles/index.css +++ /dev/null @@ -1,19 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - * { - box-sizing: border-box; - } - - html, - body, - #__next { - width: 100%; - height: 100%; - margin: 0; - padding: 0; - overflow: hidden; - } -} diff --git a/sample/hoge/tailwind.config.js b/sample/hoge/tailwind.config.js deleted file mode 100644 index c12f7da..0000000 --- a/sample/hoge/tailwind.config.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - mode: 'jit', - content: [ - './src/pages/**/*.{js,ts,jsx,tsx}', - './src/components/**/*.{js,ts,jsx,tsx}', - ], // remove unused styles in production - darkMode: 'media', // or 'media' or 'class' - theme: { - extend: {}, - }, - variants: { - extend: {}, - }, - plugins: [], -} diff --git a/sample/hoge/tsconfig.json b/sample/hoge/tsconfig.json deleted file mode 100644 index d5329ef..0000000 --- a/sample/hoge/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": [ - "src/*" - ] - } - } -} From deb91a7c15f77f2aed273f06c4b808da9b73315b Mon Sep 17 00:00:00 2001 From: shuta13 Date: Sun, 10 Apr 2022 03:36:03 +0900 Subject: [PATCH 40/60] fix: handle error of installation failed --- .gitignore | 2 +- lib/stacks/next.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index ad88169..25e96b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ node_modules/ .DS_Store package-lock.json -yarn.lock \ No newline at end of file +yarn.lock diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 533a6e5..d3f1bd8 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -107,8 +107,15 @@ declare module '*.frag' { const useYarn = installCmd === 'yarn'; const buildCmd = useYarn ? ['build'] : ['run', 'build']; - await execa(installCmd, buildCmd); - output.success('Succeed to initialize for TypeScript'); + try { + await execa(installCmd, ['install']) + await execa(installCmd, buildCmd); + output.success('Succeed to initialize for TypeScript'); + } catch (e) { + output.error(e.message); + await fs.remove(root); + process.exit(1); + } } const compilePostCss = (str, root) => { From f5a78281b1202714216d081cac83708c260a9112 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Sun, 10 Apr 2022 13:34:48 +0900 Subject: [PATCH 41/60] fix: throw error --- lib/stacks/next.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index d3f1bd8..54241cc 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -112,9 +112,8 @@ declare module '*.frag' { await execa(installCmd, buildCmd); output.success('Succeed to initialize for TypeScript'); } catch (e) { - output.error(e.message); await fs.remove(root); - process.exit(1); + throw new Error(e.message) } } From 5b5d2f900381aa504d50a2d0d623d0551e0dd7b7 Mon Sep 17 00:00:00 2001 From: shuta13 Date: Sun, 10 Apr 2022 13:35:12 +0900 Subject: [PATCH 42/60] fix: format --- lib/stacks/next.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/stacks/next.js b/lib/stacks/next.js index 54241cc..a246c0e 100644 --- a/lib/stacks/next.js +++ b/lib/stacks/next.js @@ -108,12 +108,12 @@ declare module '*.frag' { const buildCmd = useYarn ? ['build'] : ['run', 'build']; try { - await execa(installCmd, ['install']) + await execa(installCmd, ['install']); await execa(installCmd, buildCmd); output.success('Succeed to initialize for TypeScript'); } catch (e) { await fs.remove(root); - throw new Error(e.message) + throw new Error(e.message); } } From 7671125cc67971f60daf407a192f2c9030ab768a Mon Sep 17 00:00:00 2001 From: Renaud Rohlinger Date: Sun, 10 Apr 2022 14:40:12 +0900 Subject: [PATCH 43/60] moved organization --- docs/index.html | 2 +- lib/stacks/native.js | 2 +- lib/utils/messages.js | 4 ++-- lib/utils/process-exit.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/index.html b/docs/index.html index 121a001..7817c18 100644 --- a/docs/index.html +++ b/docs/index.html @@ -13,7 +13,7 @@