From 95cf0ad9e380fe35ce6f99b09b8696d5c8117c6f Mon Sep 17 00:00:00 2001 From: Lennart Date: Mon, 5 Aug 2019 15:00:35 +0200 Subject: [PATCH] feat: Add plop.js generators (#26) * chore: Add plop and plop templates * Modify templates, fix cypress path, add readme-name * Remove kebabCase from readme-name * Remove unnecessary brackets * Use name in seo component meta tag Fixes #25 --- .prettierignore | 3 +- examples/cara/README.md | 4 + package.json | 2 + plop-templates/cypress-test.ts.hbs | 9 + plop-templates/example/LICENSE.hbs | 21 ++ plop-templates/example/README.md.hbs | 80 +++++++ plop-templates/example/gatsby-config.js.hbs | 47 ++++ plop-templates/example/index-page.js.hbs | 5 + plop-templates/example/package.json.hbs | 29 +++ plop-templates/theme/.npmignore.hbs | 8 + plop-templates/theme/README.md.hbs | 78 ++++++ plop-templates/theme/gatsby-config.js.hbs | 17 ++ plop-templates/theme/index.js.hbs | 1 + plop-templates/theme/package.json.hbs | 50 ++++ plop-templates/theme/seo.tsx.hbs | 69 ++++++ plop-templates/theme/theme-ui.js.hbs | 62 +++++ .../theme/use-site-metadata.tsx.hbs | 32 +++ plopfile.js | 116 +++++++++ yarn.lock | 225 +++++++++++++++++- 19 files changed, 846 insertions(+), 12 deletions(-) create mode 100644 plop-templates/cypress-test.ts.hbs create mode 100644 plop-templates/example/LICENSE.hbs create mode 100644 plop-templates/example/README.md.hbs create mode 100644 plop-templates/example/gatsby-config.js.hbs create mode 100644 plop-templates/example/index-page.js.hbs create mode 100644 plop-templates/example/package.json.hbs create mode 100644 plop-templates/theme/.npmignore.hbs create mode 100644 plop-templates/theme/README.md.hbs create mode 100644 plop-templates/theme/gatsby-config.js.hbs create mode 100644 plop-templates/theme/index.js.hbs create mode 100644 plop-templates/theme/package.json.hbs create mode 100644 plop-templates/theme/seo.tsx.hbs create mode 100644 plop-templates/theme/theme-ui.js.hbs create mode 100644 plop-templates/theme/use-site-metadata.tsx.hbs create mode 100644 plopfile.js diff --git a/.prettierignore b/.prettierignore index 939f880af..f58e7d6a4 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,4 +14,5 @@ www/src/webgl/uniforms.js cypress/e2e/build LICENSE *.txt -**/static/** \ No newline at end of file +**/static/** +**/*.hbs \ No newline at end of file diff --git a/examples/cara/README.md b/examples/cara/README.md index e0ac3f0ec..18e3ae65b 100644 --- a/examples/cara/README.md +++ b/examples/cara/README.md @@ -65,6 +65,10 @@ This starter creates a new Gatsby site that installs and configures the theme [` Please have a look at the theme's README and files to see what options are available and how you can shadow the various components including Theme UI. +### Change your `static` folder + +The `static` folder contains the icons, social media images and robots.txt. Don't forget to change these files, too! + ## 🎓 Learning Gatsby Looking for more guidance? Full documentation for Gatsby lives [on Gatsby's website](https://www.gatsbyjs.org/). diff --git a/package.json b/package.json index 37abe599a..106240126 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "lint:ci": "yarn lint --format junit -o results/eslint/result.xml", "format": "prettier \"**/*.{md,mdx,json}\" --write", "lerna": "lerna", + "plop": "plop", "cy:run": "cross-env CYPRESS_baseUrl=http://localhost:9000 cypress run --browser chrome --reporter junit --reporter-options 'mochaFile=results/cypress/result.xml'", "cy:open": "cypress open", "start-server-and-test": "start-server-and-test", @@ -51,6 +52,7 @@ "husky": "^3.0.2", "lerna": "^3.15.0", "lint-staged": "^9.2.1", + "plop": "^2.4.0", "prettier": "^1.18.2", "start-server-and-test": "^1.9.1", "typescript": "^3.5.2" diff --git a/plop-templates/cypress-test.ts.hbs b/plop-templates/cypress-test.ts.hbs new file mode 100644 index 000000000..26e172b7d --- /dev/null +++ b/plop-templates/cypress-test.ts.hbs @@ -0,0 +1,9 @@ +/// +/// +/// + +describe(`gatsby-theme-{{kebabCase name}}`, () => { + it(`should work`, () => { + cy.visit(`/`).assertRoute(`/`) + }) +}) diff --git a/plop-templates/example/LICENSE.hbs b/plop-templates/example/LICENSE.hbs new file mode 100644 index 000000000..43946b8b7 --- /dev/null +++ b/plop-templates/example/LICENSE.hbs @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 LeKoArts + +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/plop-templates/example/README.md.hbs b/plop-templates/example/README.md.hbs new file mode 100644 index 000000000..2ad42c62e --- /dev/null +++ b/plop-templates/example/README.md.hbs @@ -0,0 +1,80 @@ +

+ + LekoArts + +

+

+ {{readme-name}} +

+ +

+ + {{readme-name}} is released under the MIT license. + + PRs welcome! + + Follow @lekoarts_de + + + Netlify Status + +

+ +Stub description for {{readme-name}}. Using the Gatsby Theme [`@lekoarts/gatsby-theme-{{kebabCase name}}`](https://github.com/LekoArts/gatsby-themes/tree/master/themes/gatsby-theme-{{kebabCase name}}). + +[**Demo Website**](https://{{kebabCase name}}.lekoarts.de) + +Also be sure to checkout other [Free & Open Source Gatsby Themes](https://themes.lekoarts.de) + +## ✨ Features + +- TODO + +## 🚀 Getting Started + +1. **Create a Gatsby site.** + +Use the Gatsby CLI to create a new site, specifying this project + +```sh +gatsby new project-name https://github.com/LekoArts/{{kebabCase starter-name}} +``` + +2. **Start developing.** + +Navigate into your new site's directory and start it up. + +```sh +cd project-name +gatsby develop +``` + +3. **Open the code and start customizing!** + +Your site is now running at `http://localhost:8000`! + +If you want to learn more about how you can use a Gatsby starter that is configured with a Gatsby theme, you can checkout this [shorter](https://www.gatsbyjs.org/docs/themes/using-a-gatsby-theme/) or [longer](https://www.gatsbyjs.org/tutorial/using-a-theme/) tutorial. The tutorials don't exactly apply to this starter however the concepts are the same. + +## 📝 Using and modifying this starter + +This starter creates a new Gatsby site that installs and configures the theme [`@lekoarts/gatsby-theme-{{kebabCase name}}`](https://github.com/LekoArts/gatsby-themes/tree/master/themes/gatsby-theme-{{kebabCase name}}). + +Please have a look at the theme's README and files to see what options are available and how you can shadow the various components including Theme UI. + +### Change your `static` folder + +The `static` folder contains the icons, social media images and robots.txt. Don't forget to change these files, too! + +## 🎓 Learning Gatsby + +Looking for more guidance? Full documentation for Gatsby lives [on Gatsby's website](https://www.gatsbyjs.org/). + +### Themes + +- To learn more about Gatsby themes specifically, we recommend checking out the [theme docs](https://www.gatsbyjs.org/docs/themes/). + +### General + +- **For most developers, I recommend starting with the [in-depth tutorial for creating a site with Gatsby](https://www.gatsbyjs.org/tutorial/).** It starts with zero assumptions about your level of ability and walks through every step of the process. + +- **To dive straight into code samples, head [to Gatsby's documentation](https://www.gatsbyjs.org/docs/).** In particular, check out the _Reference Guides_ and _Gatsby API_ sections in the sidebar. diff --git a/plop-templates/example/gatsby-config.js.hbs b/plop-templates/example/gatsby-config.js.hbs new file mode 100644 index 000000000..f77e5fa7b --- /dev/null +++ b/plop-templates/example/gatsby-config.js.hbs @@ -0,0 +1,47 @@ +require(`dotenv`).config({ + path: `.env`, +}) + +module.exports = { + siteMetadata: { + siteTitleAlt: `{{readme-name}} - TODO`, + }, + plugins: [ + { + resolve: `@lekoarts/gatsby-theme-{{kebabCase name}}`, + options: {}, + }, + { + resolve: `gatsby-plugin-google-analytics`, + options: { + trackingId: process.env.GOOGLE_ANALYTICS_ID, + }, + }, + { + resolve: `gatsby-plugin-manifest`, + options: { + name: `{{kebabCase name}} - @lekoarts/gatsby-theme-{{kebabCase name}}`, + short_name: `{{kebabCase name}}`, + description: `Stub description for {{kebabCase name}}`, + start_url: `/`, + background_color: `#fff`, + theme_color: `#b83280`, + display: `standalone`, + icons: [ + { + src: `/android-chrome-192x192.png`, + sizes: `192x192`, + type: `image/png`, + }, + { + src: `/android-chrome-512x512.png`, + sizes: `512x512`, + type: `image/png`, + }, + ], + }, + }, + `gatsby-plugin-offline`, + `gatsby-plugin-netlify`, + ], +} diff --git a/plop-templates/example/index-page.js.hbs b/plop-templates/example/index-page.js.hbs new file mode 100644 index 000000000..7a9f6fa53 --- /dev/null +++ b/plop-templates/example/index-page.js.hbs @@ -0,0 +1,5 @@ +import React from "react" + +const Index = () =>
Hello from the {{kebabCase name}} example!
+ +export default Index diff --git a/plop-templates/example/package.json.hbs b/plop-templates/example/package.json.hbs new file mode 100644 index 000000000..c42f9d040 --- /dev/null +++ b/plop-templates/example/package.json.hbs @@ -0,0 +1,29 @@ +{ + "private": true, + "name": "{{kebabCase name}}", + "version": "0.0.1", + "author": "LekoArts ", + "license": "MIT", + "scripts": { + "build": "gatsby build", + "develop": "gatsby develop", + "develop:cypress": "cross-env CYPRESS_SUPPORT=y yarn develop", + "build:cypress": "cross-env CYPRESS_SUPPORT=y yarn build", + "start": "gatsby develop", + "serve": "gatsby serve", + "clean": "gatsby clean" + }, + "dependencies": { + "@lekoarts/gatsby-theme-{{kebabCase name}}": "*", + "gatsby": "^2.13.3", + "gatsby-plugin-google-analytics": "^2.1.4", + "gatsby-plugin-manifest": "^2.2.3", + "gatsby-plugin-netlify": "^2.1.3", + "gatsby-plugin-offline": "^2.2.4", + "react": "^16.8.6", + "react-dom": "^16.8.6" + }, + "devDependencies": { + "cross-env": "^5.2.0" + } +} diff --git a/plop-templates/theme/.npmignore.hbs b/plop-templates/theme/.npmignore.hbs new file mode 100644 index 000000000..96ddb6238 --- /dev/null +++ b/plop-templates/theme/.npmignore.hbs @@ -0,0 +1,8 @@ +.cache +node_modules +public +projects + +.idea +.vscode +.DS_Store \ No newline at end of file diff --git a/plop-templates/theme/README.md.hbs b/plop-templates/theme/README.md.hbs new file mode 100644 index 000000000..eeb6985a1 --- /dev/null +++ b/plop-templates/theme/README.md.hbs @@ -0,0 +1,78 @@ +

+ + Gatsby Theme + +

+

+ @lekoarts/gatsby-theme-{{kebabCase name}} +

+ +

+ + @lekoarts/gatsby-theme-{{kebabCase name}} is released under the MIT license. + + + Current npm package version. + + + Downloads per month on npm. + + + Total downloads on npm. + + PRs welcome! + + Follow @lekoarts_de + +

+ +Show the live statuses of your Netlify and CircleCI builds on your website! Easily integrate the customizable components into your site and adapt them to your theme (utilizing Theme UI). + +[**Demo Website**](https://{{kebabCase name}}.lekoarts.de) ([Source Code](https://github.com/LekoArts/{{kebabCase starter-name}})) + +Also be sure to checkout other [Free & Open Source Gatsby Themes](https://themes.lekoarts.de) + +## Features + +- TODO + +## Installation + +```sh +npm install @lekoarts/gatsby-theme-{{kebabCase name}} +``` + +### Install as a starter + +This will generate a new site that pre-configures use of the theme. Perfect for a single-page usage (e.g. `https://status.your-domain.tld`). + +```sh +gatsby new {{kebabCase name}} LekoArts/{{kebabCase starter-name}} +``` + +[**View the starter's code**](https://github.com/LekoArts/{{kebabCase starter-name}}) + +## Usage + +### Theme options + +| Key | Default Value | Description | +| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `option` | `{}` | text | + +#### Example usage + +```js +// gatsby-config.js +module.exports = { + plugins: [ + { + resolve: `@lekoarts/gatsby-theme-{{kebabCase name}}`, + options: { + // TODO + } + } + } + ] +}; +``` diff --git a/plop-templates/theme/gatsby-config.js.hbs b/plop-templates/theme/gatsby-config.js.hbs new file mode 100644 index 000000000..b2bfe76fe --- /dev/null +++ b/plop-templates/theme/gatsby-config.js.hbs @@ -0,0 +1,17 @@ +module.exports = themeOptions => ({ + siteMetadata: { + siteTitle: `{{readme-name}}`, + siteTitleAlt: `{{readme-name}} - @lekoarts/gatsby-theme-{{kebabCase name}}`, + siteHeadline: `{{readme-name}} - Gatsby Theme from @lekoarts`, + siteUrl: `https://{{kebabCase name}}.lekoarts.de`, + siteDescription: `Stub description for {{kebabCase name}}`, + siteLanguage: `en`, + siteImage: `/banner.jpg`, + author: `@lekoarts_de`, + basePath, + }, + plugins: [ + `gatsby-plugin-typescript`, + `gatsby-plugin-theme-ui`, + ], +}) diff --git a/plop-templates/theme/index.js.hbs b/plop-templates/theme/index.js.hbs new file mode 100644 index 000000000..625c0891b --- /dev/null +++ b/plop-templates/theme/index.js.hbs @@ -0,0 +1 @@ +// noop \ No newline at end of file diff --git a/plop-templates/theme/package.json.hbs b/plop-templates/theme/package.json.hbs new file mode 100644 index 000000000..fc095dda3 --- /dev/null +++ b/plop-templates/theme/package.json.hbs @@ -0,0 +1,50 @@ +{ + "name": "@lekoarts/gatsby-theme-{{kebabCase name}}", + "version": "0.0.1", + "author": "LekoArts ", + "description": "Stub description for {{kebabCase name}}", + "license": "MIT", + "main": "index.js", + "publishConfig": { + "access": "public" + }, + "scripts": { + "build": "gatsby build", + "develop": "gatsby develop", + "start": "gatsby develop", + "clean": "gatsby clean" + }, + "peerDependencies": { + "gatsby": "^2.13.3", + "react": "^16.8.6", + "react-dom": "^16.8.6" + }, + "devDependencies": { + "gatsby": "^2.13.51", + "react": "^16.8.6", + "react-dom": "^16.8.6" + }, + "dependencies": { + "@emotion/core": "^10.0.15", + "@mdx-js/react": "^1.1.5", + "@theme-ui/presets": "^0.2.15", + "gatsby-plugin-theme-ui": "^0.2.18", + "gatsby-plugin-typescript": "^2.1.2", + "theme-ui": "^0.2.21" + }, + "keywords": [ + "gatsby", + "gatsby-theme", + "gatsby-plugin", + "lekoarts" + ], + "bugs": { + "url": "https://github.com/LekoArts/gatsby-themes/issues" + }, + "homepage": "https://themes.lekoarts.de", + "repository": { + "type": "git", + "url": "https://github.com/LekoArts/gatsby-themes.git", + "directory": "themes/gatsby-theme-{{kebabCase name}}" + } +} diff --git a/plop-templates/theme/seo.tsx.hbs b/plop-templates/theme/seo.tsx.hbs new file mode 100644 index 000000000..f16eb5c93 --- /dev/null +++ b/plop-templates/theme/seo.tsx.hbs @@ -0,0 +1,69 @@ +import React from "react" +import Helmet from "react-helmet" +import useSiteMetadata from "../hooks/use-site-metadata" + +const defaultProps = { + title: ``, + description: false, + pathname: false, + image: false, + children: null, +} + +type Props = { + title?: string + description?: string + pathname?: string + image?: string + children?: React.ReactNode +} + +const SEO = ({ title, description, pathname, image, children }: Props) => { + const site = useSiteMetadata() + + const { + siteTitle, + siteTitleAlt: defaultTitle, + siteUrl, + siteDescription: defaultDescription, + siteLanguage, + siteImage: defaultImage, + author, + } = site + + const seo = { + title: title || defaultTitle, + description: description || defaultDescription, + url: `${siteUrl}${pathname || ``}`, + image: `${siteUrl}${image || defaultImage}`, + } + return ( + + + + + + + + + + + + + + + + + + + + + + {children} + + ) +} + +export default SEO + +SEO.defaultProps = defaultProps diff --git a/plop-templates/theme/theme-ui.js.hbs b/plop-templates/theme/theme-ui.js.hbs new file mode 100644 index 000000000..3b09a1052 --- /dev/null +++ b/plop-templates/theme/theme-ui.js.hbs @@ -0,0 +1,62 @@ +import { tailwind } from "@theme-ui/presets" + +export default { + ...tailwind, + initialColorMode: `light`, + useCustomProperties: true, + colors: { + ...tailwind.colors, + primary: tailwind.colors.pink[7], + secondary: tailwind.colors.indigo[6], + modes: { + dark: { + text: tailwind.colors.white, + primary: tailwind.colors.pink[4], + background: tailwind.colors.gray[8], + }, + }, + }, + styles: { + ...tailwind.styles, + root: { + ...tailwind.styles.root, + color: `text`, + backgroundColor: `background`, + }, + p: { + fontSize: [1, 2], + letterSpacing: `-0.003em`, + lineHeight: `body`, + "--baseline-multiplier": 0.179, + "--x-height-multiplier": 0.35, + }, + h1: { + ...tailwind.styles.h1, + fontSize: [5, 6], + mt: 2, + }, + h2: { + ...tailwind.styles.h2, + fontSize: [4, 5], + mt: 2, + }, + h3: { + ...tailwind.styles.h3, + fontSize: [3, 4], + mt: 3, + }, + h4: { + ...tailwind.styles.h4, + fontSize: [2, 3], + }, + h5: { + ...tailwind.styles.h5, + fontSize: [1, 2], + }, + h6: { + ...tailwind.styles.h6, + fontSize: 1, + mb: 2, + }, + }, +} diff --git a/plop-templates/theme/use-site-metadata.tsx.hbs b/plop-templates/theme/use-site-metadata.tsx.hbs new file mode 100644 index 000000000..c07c63181 --- /dev/null +++ b/plop-templates/theme/use-site-metadata.tsx.hbs @@ -0,0 +1,32 @@ +import { graphql, useStaticQuery } from "gatsby" + +type Props = { + site: { + siteMetadata: { + [key: string]: string + } + } +} + +const useSiteMetadata = () => { + const data = useStaticQuery(graphql` + query { + site { + siteMetadata { + siteTitle + siteTitleAlt + siteHeadline + siteUrl + siteDescription + siteLanguage + siteImage + author + } + } + } + `) + + return data.site.siteMetadata +} + +export default useSiteMetadata diff --git a/plopfile.js b/plopfile.js new file mode 100644 index 000000000..1cf1a6ab6 --- /dev/null +++ b/plopfile.js @@ -0,0 +1,116 @@ +const prompt = [ + { + type: `input`, + name: `name`, + message: `Name of the theme`, + }, + { + type: `input`, + name: `readme-name`, + message: `Name for the README title, alt tags of images and siteMetadata`, + }, + { + type: `input`, + name: `starter-name`, + message: `Name of the respective starter project (if already existing use the name after "LekoArts/")`, + }, +] + +const themeActions = [ + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/.npmignore`, + templateFile: `plop-templates/theme/.npmignore.hbs`, + }, + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/gatsby-config.js`, + templateFile: `plop-templates/theme/gatsby-config.js.hbs`, + }, + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/index.js`, + templateFile: `plop-templates/theme/index.js.hbs`, + }, + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/package.json`, + templateFile: `plop-templates/theme/package.json.hbs`, + }, + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/README.md`, + templateFile: `plop-templates/theme/README.md.hbs`, + }, + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/src/components/seo.tsx`, + templateFile: `plop-templates/theme/seo.tsx.hbs`, + }, + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/src/gatsby-plugin-theme-ui/index.js`, + templateFile: `plop-templates/theme/theme-ui.js.hbs`, + }, + { + type: `add`, + path: `themes/gatsby-theme-{{kebabCase name}}/src/hooks/use-site-metadata.tsx`, + templateFile: `plop-templates/theme/use-site-metadata.tsx.hbs`, + }, +] + +const exampleActions = [ + { + type: `add`, + path: `examples/{{kebabCase name}}/gatsby-config.js`, + templateFile: `plop-templates/example/gatsby-config.js.hbs`, + }, + { + type: `add`, + path: `examples/{{kebabCase name}}/src/pages/index.js`, + templateFile: `plop-templates/example/index-page.js.hbs`, + }, + { + type: `add`, + path: `examples/{{kebabCase name}}/LICENSE`, + templateFile: `plop-templates/example/LICENSE.hbs`, + }, + { + type: `add`, + path: `examples/{{kebabCase name}}/package.json`, + templateFile: `plop-templates/example/package.json.hbs`, + }, + { + type: `add`, + path: `examples/{{kebabCase name}}/README.md`, + templateFile: `plop-templates/example/README.md.hbs`, + }, + { + type: `add`, + path: `cypress/e2e/{{kebabCase name}}.ts`, + templateFile: `plop-templates/cypress-test.ts.hbs`, + }, +] + +module.exports = function(plop) { + // Add a new theme + example to get going with theme development + plop.setGenerator(`theme & example`, { + description: `Use this template to get started with the next theme! It sets up a theme inside /themes, an example inside /examples and a Cypress test.`, + prompts: [...prompt], + actions: [...themeActions, ...exampleActions].filter(Boolean), + }) + + // Add a new theme + plop.setGenerator(`theme`, { + description: `Sets up a new theme`, + prompts: [...prompt], + actions: [...themeActions].filter(Boolean), + }) + + // Add a new example + plop.setGenerator(`example`, { + description: `Sets up a new example`, + prompts: [...prompt], + actions: [...exampleActions].filter(Boolean), + }) +} diff --git a/yarn.lock b/yarn.lock index a8b19372d..7a5629e5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2950,6 +2950,11 @@ array-differ@^2.0.3: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" @@ -2998,6 +3003,11 @@ array-reduce@~0.0.0: resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -4294,6 +4304,11 @@ cli-spinners@^1.0.0: 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.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" + integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== + cli-table3@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" @@ -4368,6 +4383,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -4835,6 +4855,11 @@ core-js@^1.0.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= +core-js@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" + integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== + core-util-is@1.0.2, 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" @@ -5525,6 +5550,11 @@ detab@2.0.2, detab@^2.0.0: dependencies: repeat-string "^1.5.4" +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -7066,6 +7096,32 @@ find-versions@^3.0.0: array-uniq "^2.1.0" semver-regex "^2.0.0" +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -7136,11 +7192,18 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -for-in@^1.0.2: +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -8284,7 +8347,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== -handlebars@^4.1.0: +handlebars@^4.1.0, handlebars@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== @@ -8988,7 +9051,7 @@ inquirer@3.3.0: strip-ansi "^4.0.0" through "^2.3.6" -inquirer@^6.2.0, inquirer@^6.2.2, inquirer@^6.4.1: +inquirer@^6.2.0, inquirer@^6.2.2, inquirer@^6.3.1, inquirer@^6.4.1: version "6.5.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== @@ -9015,6 +9078,11 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" +interpret@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + into-stream@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" @@ -9065,6 +9133,14 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -9586,6 +9662,11 @@ isarray@2.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= +isbinaryfile@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.2.tgz#bfc45642da645681c610cca831022e30af426488" + integrity sha512-C3FSxJdNrEr2F4z6uFtNzECDM5hXk+46fxaa+cwBe5/XrWSmzdG8DDgyjfX6/NRdBB21q2JXuRAzPCUs+fclnQ== + isemail@3.x.x: version "3.2.0" resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" @@ -9934,6 +10015,20 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +liftoff@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" + integrity sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= + dependencies: + extend "^3.0.0" + findup-sync "^2.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -10351,7 +10446,7 @@ lodash@4.17.15, lodash@^4.11.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-symbols@2.2.0: +log-symbols@2.2.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== @@ -10538,6 +10633,13 @@ make-fetch-happen@^5.0.0: socks-proxy-agent "^4.0.0" ssri "^6.0.0" +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + 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" @@ -10545,7 +10647,7 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -map-cache@^0.2.2: +map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= @@ -10782,7 +10884,7 @@ micro-api-client@^3.3.0: resolved "https://registry.yarnpkg.com/micro-api-client/-/micro-api-client-3.3.0.tgz#52dd567d322f10faffe63d19d4feeac4e4ffd215" integrity sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg== -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -11298,6 +11400,24 @@ node-libs-browser@^2.0.0: util "^0.11.0" vm-browserify "^1.0.1" +node-plop@~0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/node-plop/-/node-plop-0.19.0.tgz#da76aed327e1392fa9ba27d94262747004d0abdb" + integrity sha512-qE0LsGdB793lMHZcg7tKg9kL/98kiakoOGTykFUEyl05UxE7jk3TygHRZK1EUDBe1gJKt9triaInNgjlUbTGYw== + dependencies: + change-case "^3.1.0" + co "^4.6.0" + core-js "^3.1.4" + del "^4.1.1" + globby "^9.2.0" + handlebars "^4.1.2" + inquirer "^6.3.1" + isbinaryfile "^4.0.1" + lodash.get "^4.4.2" + mkdirp "^0.5.1" + pify "^4.0.0" + resolve "^1.11.0" + node-pre-gyp@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" @@ -11563,6 +11683,16 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + object.entries@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" @@ -11591,7 +11721,15 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.2" es-abstract "^1.5.1" -object.pick@^1.3.0: +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= @@ -11723,6 +11861,18 @@ ora@^0.2.3: cli-spinners "^0.1.2" object-assign "^4.0.1" +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + original@>=0.0.5, original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" @@ -12053,6 +12203,15 @@ parse-entities@^1.0.2, parse-entities@^1.1.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" @@ -12226,6 +12385,18 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + dependencies: + path-root-regex "^0.1.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -12312,7 +12483,7 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.1: +pify@^4.0.0, pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== @@ -12371,6 +12542,19 @@ please-upgrade-node@^3.1.1: dependencies: semver-compare "^1.0.0" +plop@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/plop/-/plop-2.4.0.tgz#3b529b20ea07a8a803ae7e1853e86c50d5277df5" + integrity sha512-Kl69KofCKE5eZcyA7UOyig9eZF8/AzvuXG2wUpaUkeXfSnrpUzw/MRVTS4g7uPz2tz/6/CroOYzc1YJm2WKwhw== + dependencies: + chalk "^1.1.3" + interpret "^1.2.0" + liftoff "^2.5.0" + minimist "^1.2.0" + node-plop "~0.19.0" + ora "^3.4.0" + v8flags "^2.0.10" + pngjs@^3.0.0, pngjs@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" @@ -13475,6 +13659,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + recursive-readdir@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" @@ -13827,7 +14018,7 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" -resolve-dir@^1.0.0: +resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= @@ -13850,7 +14041,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== @@ -15991,6 +16182,11 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + utif@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" @@ -16057,6 +16253,13 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== +v8flags@^2.0.10: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + dependencies: + user-home "^1.1.1" + valid-url@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" @@ -16181,7 +16384,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -wcwidth@^1.0.0: +wcwidth@^1.0.0, 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=