├── .npmignore
├── .eslintignore
├── packages
├── nexus-scripts
│ ├── lib
│ │ ├── scripts
│ │ │ ├── eject
│ │ │ │ ├── eject.js
│ │ │ │ └── index.js
│ │ │ ├── build
│ │ │ │ ├── index.js
│ │ │ │ └── build.js
│ │ │ └── start
│ │ │ │ ├── index.js
│ │ │ │ └── start.js
│ │ ├── config
│ │ │ └── polyfills.js
│ │ ├── index.js
│ │ ├── utils
│ │ │ └── clearConsole.js
│ │ ├── strings.js
│ │ ├── webpack
│ │ │ ├── configurations
│ │ │ │ ├── custom-babel-loader.js
│ │ │ │ ├── webpack.dev.js
│ │ │ │ ├── webpack.prod.js
│ │ │ │ └── webpack.base.js
│ │ │ └── server.js
│ │ └── nexus-scripts.js
│ ├── bin
│ │ └── nexus-scripts.js
│ ├── __tests__
│ │ └── nexus-scripts.test.js
│ ├── README.md
│ ├── CHANGELOG.md
│ └── package.json
├── nexus.js
│ ├── index.js
│ ├── CHANGELOG.md
│ └── package.json
├── webpack-nexus
│ ├── bin
│ │ └── webpack-nexus.js
│ ├── lib
│ │ ├── templateFiles
│ │ │ ├── tailwind.css
│ │ │ ├── getEslintTemplate.js
│ │ │ ├── react
│ │ │ │ ├── default.js
│ │ │ │ └── apollo.js
│ │ │ ├── getMainJsTemplate.js
│ │ │ ├── getPackageJsonTemplate.js
│ │ │ ├── getHtmlTemplate.js
│ │ │ ├── getTsConfigTemplate.js
│ │ │ ├── getVsCodeConfig.js
│ │ │ └── getGitIgnoreTemplate.js
│ │ ├── utils
│ │ │ ├── stringifyNpmPackages.js
│ │ │ ├── createFolder.js
│ │ │ └── installNpmPackages.js
│ │ └── webpack-nexus.js
│ ├── __tests__
│ │ └── webpack-nexus.test.js
│ ├── CHANGELOG.md
│ ├── package.json
│ ├── README.md
│ └── package-lock.json
├── babel-preset-webpack-nexus
│ ├── README.md
│ ├── __tests__
│ │ └── babel-preset-webpack-nexus.test.js
│ ├── CHANGELOG.md
│ ├── package.json
│ ├── lib
│ │ └── babel-preset-webpack-nexus.js
│ └── package-lock.json
└── eslint-config-webpack-nexus
│ ├── README.md
│ ├── __tests__
│ └── eslint-config-webpack-nexus.test.js
│ ├── package-lock.json
│ ├── CHANGELOG.md
│ ├── package.json
│ └── lib
│ └── eslint-config-webpack-nexus.js
├── pnpm-workspace.yaml
├── .prettierignore
├── lerna.json
├── .eslintrc.js
├── examples
├── public
│ ├── favicon.ico
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── apple-touch-icon.png
│ ├── android-chrome-192x192.png
│ └── android-chrome-512x512.png
├── src
│ ├── index.js
│ └── index.html
├── package.json
└── yarn.lock
├── .prettierrc
├── .changeset
├── config.json
└── README.md
├── .vscode
└── settings.json
├── .github
└── workflows
│ ├── pre-release.yml
│ └── release.yml
├── LICENSE
├── .gitignore
├── package.json
└── README.md
/.npmignore:
--------------------------------------------------------------------------------
1 | .npmrc
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | coverage/
3 | dist/
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/scripts/eject/eject.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/nexus.js/index.js:
--------------------------------------------------------------------------------
1 | console.log('hi');
2 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages
2 | - 'packages/**'
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | package.json
2 | node_modules
3 | dist
4 | coverage
--------------------------------------------------------------------------------
/lerna.json:
--------------------------------------------------------------------------------
1 | {
2 | "packages": [
3 | "packages/*"
4 | ],
5 | "version": "independent"
6 | }
7 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/bin/nexus-scripts.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | require('../lib/index.js');
4 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/bin/webpack-nexus.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | require('../lib/webpack-nexus');
4 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./packages/eslint-config-webpack-nexus/lib/eslint-config-webpack-nexus.js');
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/config/polyfills.js:
--------------------------------------------------------------------------------
1 | import 'core-js/stable';
2 | import 'regenerator-runtime/runtime';
3 |
--------------------------------------------------------------------------------
/examples/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/giancarlosisasi/webpack-nexus/HEAD/examples/public/favicon.ico
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/scripts/build/index.js:
--------------------------------------------------------------------------------
1 | const build = require('./build');
2 |
3 | module.exports = build;
4 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/scripts/eject/index.js:
--------------------------------------------------------------------------------
1 | const eject = require('./eject');
2 |
3 | module.exports = eject;
4 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/scripts/start/index.js:
--------------------------------------------------------------------------------
1 | const start = require('./start');
2 |
3 | module.exports = start;
4 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/index.js:
--------------------------------------------------------------------------------
1 | const nexusScripts = require('./nexus-scripts');
2 |
3 | module.exports = nexusScripts;
4 |
--------------------------------------------------------------------------------
/examples/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/giancarlosisasi/webpack-nexus/HEAD/examples/public/favicon-16x16.png
--------------------------------------------------------------------------------
/examples/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/giancarlosisasi/webpack-nexus/HEAD/examples/public/favicon-32x32.png
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 |
3 | @tailwind components;
4 |
5 | @tailwind utilities;
--------------------------------------------------------------------------------
/examples/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/giancarlosisasi/webpack-nexus/HEAD/examples/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/packages/nexus.js/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # @giancarlosio/nexus.js
2 |
3 | ## 0.0.2
4 |
5 | ### Patch Changes
6 |
7 | - b335be0: Create package
8 |
--------------------------------------------------------------------------------
/packages/babel-preset-webpack-nexus/README.md:
--------------------------------------------------------------------------------
1 | # Docs: https://github.com/GiancarlosIO/webpack-nexus/
2 |
3 | ## TODO: Create docs for this package
--------------------------------------------------------------------------------
/packages/eslint-config-webpack-nexus/README.md:
--------------------------------------------------------------------------------
1 | # Docs: https://github.com/GiancarlosIO/webpack-nexus/
2 |
3 | ## TODO: Create docs for this package
--------------------------------------------------------------------------------
/examples/public/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/giancarlosisasi/webpack-nexus/HEAD/examples/public/android-chrome-192x192.png
--------------------------------------------------------------------------------
/examples/public/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/giancarlosisasi/webpack-nexus/HEAD/examples/public/android-chrome-512x512.png
--------------------------------------------------------------------------------
/packages/nexus-scripts/__tests__/nexus-scripts.test.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const nexusScripts = require('..');
4 |
5 | describe('nexus-scripts', () => {
6 | it('needs tests');
7 | });
8 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/__tests__/webpack-nexus.test.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const webpackNexus = require('..');
4 |
5 | describe('webpack-nexus', () => {
6 | it('needs tests');
7 | });
8 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/utils/clearConsole.js:
--------------------------------------------------------------------------------
1 | function clearConsole() {
2 | process.stdout.write(
3 | process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H',
4 | );
5 | }
6 |
7 | module.exports = clearConsole;
8 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/getEslintTemplate.js:
--------------------------------------------------------------------------------
1 | function getEslintTemplate() {
2 | return `module.exports = {
3 | extends: 'eslint-config-webpack-nexus',
4 | }
5 | `;
6 | }
7 |
8 | module.exports = getEslintTemplate;
9 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 80,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "semi": true,
6 | "singleQuote": true,
7 | "trailingComma": "all",
8 | "bracketSpacing": true,
9 | "jsxBracketSameLine": false
10 | }
11 |
--------------------------------------------------------------------------------
/packages/babel-preset-webpack-nexus/__tests__/babel-preset-webpack-nexus.test.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const babelPresetWebpackNexus = require('..');
4 |
5 | describe('babel-preset-webpack-nexus', () => {
6 | it('needs tests');
7 | });
8 |
--------------------------------------------------------------------------------
/packages/eslint-config-webpack-nexus/__tests__/eslint-config-webpack-nexus.test.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const eslintConfigWebpackNexus = require('..');
4 |
5 | describe('eslint-config-webpack-nexus', () => {
6 | it('needs tests');
7 | });
8 |
--------------------------------------------------------------------------------
/examples/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 |
4 | const App = () => (
5 |
6 |
Hello world!!
7 |
8 | );
9 |
10 | ReactDOM.render(, document.querySelector('#rootApp'));
11 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/README.md:
--------------------------------------------------------------------------------
1 | # Docs: https://github.com/GiancarlosIO/webpack-nexus/
2 |
3 | # For now, this package does not works by itself. Instead use the webpack-nexus cli. It's the same but with a bunch of useful argvs :).
4 |
5 | # https://github.com/GiancarlosIO/webpack-nexus/
6 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/utils/stringifyNpmPackages.js:
--------------------------------------------------------------------------------
1 | function stringifyNpmPackages(npmPackagesObject) {
2 | return Object.keys(npmPackagesObject).reduce((packages, packageKey) => {
3 | return `${packages} ${packageKey}@${npmPackagesObject[packageKey]}`;
4 | }, '');
5 | }
6 |
7 | module.exports = stringifyNpmPackages;
8 |
--------------------------------------------------------------------------------
/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@1.7.0/schema.json",
3 | "changelog": "@changesets/cli/changelog",
4 | "commit": false,
5 | "fixed": [],
6 | "linked": [],
7 | "access": "public",
8 | "baseBranch": "master",
9 | "updateInternalDependencies": "patch",
10 | "ignore": []
11 | }
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/scripts/start/start.js:
--------------------------------------------------------------------------------
1 | const server = require('../../webpack/server');
2 |
3 | const start = ({ extraConfiguration }) => {
4 | // set the development variables
5 | process.env.NODE_ENV = 'development';
6 | process.env.BABEL_ENV = 'development';
7 | server(extraConfiguration);
8 | };
9 |
10 | module.exports = start;
11 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/strings.js:
--------------------------------------------------------------------------------
1 | module.exports.ERRORS = {
2 | mainJSFileNotExists: sourceDirectoryRootPath =>
3 | `Missing files: Hey!, the ${sourceDirectoryRootPath}/index.(js|ts|tsx) file does not exists`,
4 | mainHTMLFileNotExists: sourceDirectoryRootPath =>
5 | `Missing files: Hey!, the ${sourceDirectoryRootPath}/index.html file does not exists`,
6 | };
7 |
--------------------------------------------------------------------------------
/packages/nexus.js/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@giancarlosio/nexus.js",
3 | "version": "0.0.2",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "publishConfig": {
10 | "access": "public"
11 | },
12 | "keywords": [],
13 | "author": "",
14 | "license": "ISC"
15 | }
16 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/react/default.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 |
4 | [extraImports];
5 |
6 | const App = () => (
7 |
8 |
Hello world!!
9 |
10 | );
11 |
12 | ReactDOM.render(
13 |
14 |
15 | ,
16 | document.querySelector('#rootApp'),
17 | );
18 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/webpack/configurations/custom-babel-loader.js:
--------------------------------------------------------------------------------
1 | module.exports = require('babel-loader').custom(() => ({
2 | config(cfg) {
3 | return {
4 | ...cfg.options,
5 | presets: [
6 | ...(cfg.options.presets || []),
7 | // eslint-disable-next-line global-require
8 | require('babel-preset-webpack-nexus'),
9 | ],
10 | };
11 | },
12 | }));
13 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # webpack-nexus
2 |
3 | ## 3.0.0
4 |
5 | ### Major Changes
6 |
7 | - f2d4b0b: Improve CI
8 |
9 | ## 2.0.0
10 |
11 | ### Major Changes
12 |
13 | - 485e4c1: Docs
14 |
15 | ### Minor Changes
16 |
17 | - 0cab616: Improve docs
18 | - 400ba5f: Improve docs
19 | - 78866b1: Update dependencies
20 |
21 | ## 1.4.1
22 |
23 | ### Patch Changes
24 |
25 | - Update npm public configuration
26 |
--------------------------------------------------------------------------------
/packages/babel-preset-webpack-nexus/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # babel-preset-webpack-nexus
2 |
3 | ## 3.0.0
4 |
5 | ### Major Changes
6 |
7 | - f2d4b0b: Improve CI
8 |
9 | ## 2.0.0
10 |
11 | ### Major Changes
12 |
13 | - 485e4c1: Docs
14 |
15 | ### Minor Changes
16 |
17 | - 0cab616: Improve docs
18 | - 400ba5f: Improve docs
19 | - 78866b1: Update dependencies
20 |
21 | ## 1.4.1
22 |
23 | ### Patch Changes
24 |
25 | - Update npm public configuration
26 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/getMainJsTemplate.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Get the main js content
3 | * @returns {string} template
4 | *
5 | */
6 | function getMainJsTemplate() {
7 | return `import React from 'react';
8 | import ReactDOM from 'react-dom';
9 |
10 | const App = () => (
11 |
12 |
Hello world!!
13 |
14 | );
15 |
16 | ReactDOM.render(, document.querySelector('#rootApp'));
17 | `;
18 | }
19 |
20 | module.exports = getMainJsTemplate;
21 |
--------------------------------------------------------------------------------
/examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "examples",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "author": "Giancarlos Isasi ",
6 | "license": "MIT",
7 | "scripts": {
8 | "start": "node ../packages/nexus-scripts/lib/nexus-scripts.js start",
9 | "build": "node ../packages/nexus-scripts/lib/nexus-scripts.js nexus-scripts build"
10 | },
11 | "dependencies": {
12 | "@hot-loader/react-dom": "^16.11.0",
13 | "react": "16.8.6",
14 | "react-dom": "16.8.6"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "[javascript]": {
3 | "editor.formatOnSave": false
4 | },
5 | "html.format.enable": false,
6 | "[typescript]": {
7 | "editor.formatOnSave": false
8 | },
9 | "editor.codeActionsOnSave": {
10 | "source.fixAll.tslint": true,
11 | "source.fixAll.eslint": true
12 | },
13 | "eslint.validate": [
14 | "javascript",
15 | "javascriptreact",
16 | "Babel Javascript"
17 | ],
18 | "eslint.alwaysShowStatus": true,
19 | "typescript.tsdk": "node_modules/typescript/lib"
20 | }
--------------------------------------------------------------------------------
/packages/eslint-config-webpack-nexus/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eslint-config-webpack-nexus",
3 | "version": "1.3.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "confusing-browser-globals": {
8 | "version": "1.0.9",
9 | "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz",
10 | "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw=="
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/.changeset/README.md:
--------------------------------------------------------------------------------
1 | # Changesets
2 |
3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4 | with multi-package repos, or single-package repos to help you version and publish your code. You can
5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6 |
7 | We have a quick list of common questions to get you started engaging with this project in
8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9 |
--------------------------------------------------------------------------------
/packages/eslint-config-webpack-nexus/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # eslint-config-webpack-nexus
2 |
3 | ## 4.0.0
4 |
5 | ### Major Changes
6 |
7 | - f2d4b0b: Improve CI
8 |
9 | ## 3.0.0
10 |
11 | ### Major Changes
12 |
13 | - 485e4c1: Docs
14 |
15 | ### Minor Changes
16 |
17 | - 0cab616: Improve docs
18 | - 400ba5f: Improve docs
19 | - 78866b1: Update dependencies
20 |
21 | ## 2.0.1
22 |
23 | ### Patch Changes
24 |
25 | - Update npm public configuration
26 |
27 | ## 2.0.0
28 |
29 | ### Major Changes
30 |
31 | - Reorder the extensions that the eslint plugin use
32 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/getPackageJsonTemplate.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-useless-escape */
2 | function getPackageJsonTemplate({ projectName, author, extraNexusArgs }) {
3 | return `
4 | {
5 | "name": "${projectName}",
6 | "version": "0.0.1",
7 | "description": "",
8 | "keywords": [
9 | "webpack",
10 | "react",
11 | "styled-components",
12 | "react-dom"
13 | ],
14 | "author": "${author || ''}",
15 | "license": "MIT",
16 | "scripts": {
17 | "start": "npx nexus-scripts start ${extraNexusArgs}",
18 | "build": "npx nexus-scripts build ${extraNexusArgs}"
19 | }
20 | }
21 |
22 | `;
23 | }
24 |
25 | module.exports = getPackageJsonTemplate;
26 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # nexus-scripts
2 |
3 | ## 3.0.0
4 |
5 | ### Major Changes
6 |
7 | - f2d4b0b: Improve CI
8 |
9 | ### Patch Changes
10 |
11 | - Updated dependencies [f2d4b0b]
12 | - babel-preset-webpack-nexus@3.0.0
13 |
14 | ## 2.0.0
15 |
16 | ### Major Changes
17 |
18 | - 485e4c1: Docs
19 |
20 | ### Minor Changes
21 |
22 | - 0cab616: Improve docs
23 | - 400ba5f: Improve docs
24 | - 78866b1: Update dependencies
25 |
26 | ### Patch Changes
27 |
28 | - Updated dependencies [0cab616]
29 | - Updated dependencies [485e4c1]
30 | - Updated dependencies [400ba5f]
31 | - Updated dependencies [78866b1]
32 | - babel-preset-webpack-nexus@2.0.0
33 |
34 | ## 1.6.1
35 |
36 | ### Patch Changes
37 |
38 | - Update npm public configuration
39 | - Updated dependencies
40 | - babel-preset-webpack-nexus@1.4.1
41 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/getHtmlTemplate.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Returns the index.html content
3 | *
4 | * @param {Object} config
5 | * @param {string} config.projectName
6 | * @returns {string}
7 | */
8 | function getHtmlTemplate({ projectName }) {
9 | return `
10 |
11 |
12 |
13 |
14 |
15 |
16 | ${projectName}
17 |
18 |
19 |
20 |
21 |
22 |
23 | `;
24 | }
25 |
26 | module.exports = getHtmlTemplate;
27 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/scripts/build/build.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const chalk = require('chalk');
3 |
4 | const webpackProd = require('../../webpack/configurations/webpack.prod');
5 |
6 | const build = ({ argv, extraConfiguration }) => {
7 | process.env.NODE_ENV = 'production';
8 | process.env.BABEL_ENV = 'production';
9 |
10 | const webpackProdConfig = webpackProd({}, extraConfiguration);
11 |
12 | webpack(webpackProdConfig, (error, stats) => {
13 | if (error || stats.hasErrors()) {
14 | return console.log(
15 | chalk.red(
16 | 'Error to compile on production mode 😢',
17 | error || stats.hasErrors(),
18 | ),
19 | );
20 | }
21 |
22 | console.log(
23 | chalk.green(`
24 | Build successful! 🎉
25 | `),
26 | );
27 | console.log(stats.toString({ all: false, assets: true, colors: true }));
28 | });
29 | };
30 |
31 | module.exports = build;
32 |
--------------------------------------------------------------------------------
/.github/workflows/pre-release.yml:
--------------------------------------------------------------------------------
1 |
2 | name: Pre-release
3 |
4 | on:
5 | push:
6 | branches:
7 | - 'prerelease/**'
8 | - '!master'
9 |
10 | jobs:
11 | build:
12 | name: Build and publish
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: Checkout code
16 | uses: actions/checkout@v2
17 | with:
18 | fetch-depth: 2
19 | token: ${{ secrets.GITHUB_TOKEN }}
20 | - name: Setup environment
21 | uses: actions/setup-node@v2
22 | with:
23 | node-version: '14'
24 | - name: Setup pnpm
25 | uses: pnpm/action-setup@v2.1.0
26 | with:
27 | version: 6.0.2
28 | run_install: true
29 | env:
30 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
31 | - name: publish
32 | env:
33 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
34 | run: |
35 | echo "//registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN" > ~/.npmrc
36 | pnpm prerelease
37 | pnpm prerelease-publish
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/getTsConfigTemplate.js:
--------------------------------------------------------------------------------
1 | function getTsConfigTemplate() {
2 | return `{
3 | "compilerOptions": {
4 | "moduleResolution": "node",
5 | "module": "esnext",
6 | "allowJs": true,
7 | "noEmit": true,
8 | "strict": false,
9 | "isolatedModules": true,
10 | "esModuleInterop": true,
11 | "strictNullChecks": true,
12 | "experimentalDecorators": true,
13 | "noUnusedLocals": true,
14 | "noUnusedParameters": true,
15 | "noImplicitAny": false,
16 | "skipLibCheck": true,
17 | "target": "es5",
18 | "allowSyntheticDefaultImports": true,
19 | "forceConsistentCasingInFileNames": true,
20 | "resolveJsonModule": true,
21 | "lib": [
22 | "dom",
23 | "dom.iterable",
24 | "esnext"
25 | ],
26 | "jsx": "react",
27 | "plugins": [
28 | {
29 | "name": "typescript-styled-plugin"
30 | }
31 | ]
32 | },
33 | "include": [
34 | "src"
35 | ]
36 | }
37 | `;
38 | }
39 |
40 | module.exports = getTsConfigTemplate;
41 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/utils/createFolder.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const chalk = require('chalk');
3 |
4 | /**
5 | * Create a folder
6 | *
7 | * @param {Object} config
8 | * @param {String} config.pathToCreate
9 | * @param {String} config.folderName
10 | */
11 | function createFolder({ pathToCreate, folderName }) {
12 | return new Promise((resolve, reject) => {
13 | fs.mkdir(pathToCreate, error => {
14 | if (error) {
15 | if (error.code === 'EEXIST') {
16 | console.log(
17 | chalk.red(`>⚠️ Hey! The ${folderName} folder already exists!`),
18 | );
19 | reject(error);
20 | } else {
21 | console.log(
22 | chalk.red('>⚠️ Error to create the folder in the current path'),
23 | );
24 | reject(error);
25 | }
26 | } else {
27 | console.log(
28 | chalk.green(`> Success to create the ${folderName} folder`),
29 | );
30 | resolve();
31 | }
32 | });
33 | });
34 | }
35 |
36 | module.exports = createFolder;
37 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Giancarlos Isasi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webpack-nexus",
3 | "version": "3.0.0",
4 | "description": "A cli to create your next super duper javascript project",
5 | "keywords": [
6 | "webpack",
7 | "react",
8 | "styled-components",
9 | "react-dom",
10 | "nexus"
11 | ],
12 | "author": "Giancarlos ",
13 | "homepage": "https://github.com/GiancarlosIO/webpack-nexus#readme",
14 | "license": "MIT",
15 | "files": [
16 | "lib",
17 | "bin"
18 | ],
19 | "bin": {
20 | "webpack-nexus": "bin/webpack-nexus.js"
21 | },
22 | "repository": {
23 | "type": "git",
24 | "url": "git+https://github.com/GiancarlosIO/webpack-nexus.git"
25 | },
26 | "publishConfig": {
27 | "access": "public"
28 | },
29 | "scripts": {
30 | "test": "echo \"Error: run tests from root\" && exit 1"
31 | },
32 | "bugs": {
33 | "url": "https://github.com/GiancarlosIO/webpack-nexus/issues"
34 | },
35 | "dependencies": {
36 | "@types/chalk": "^2.2.0",
37 | "chalk": "^2.4.2",
38 | "inquirer": "^7.0.0",
39 | "minimist": "^1.2.5",
40 | "ora": "^4.0.1"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (https://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # TypeScript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 | .npmrc
45 |
46 | # Optional eslint cache
47 | .eslintcache
48 |
49 | # Optional REPL history
50 | .node_repl_history
51 |
52 | # Output of 'npm pack'
53 | *.tgz
54 |
55 | # Yarn Integrity file
56 | .yarn-integrity
57 |
58 | # dotenv environment variables file
59 | .env
60 |
61 | # next.js build output
62 | .next
63 |
64 | dist/
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/getVsCodeConfig.js:
--------------------------------------------------------------------------------
1 | function getVsCodeConfig() {
2 | return `{
3 | "html.format.enable": false,
4 |
5 | // disabled to not run double format
6 | "[javascript]": {
7 | "editor.formatOnSave": false,
8 | },
9 | "[javascriptreact]": {
10 | "editor.formatOnSave": false,
11 | },
12 | "[typescript]": {
13 | "editor.formatOnSave": false,
14 | },
15 | "[typescriptreact]": {
16 | "editor.formatOnSave": false,
17 | },
18 |
19 | "editor.codeActionsOnSave": {
20 | "source.fixAll.tslint": true,
21 | "source.fixAll.eslint": true
22 | },
23 |
24 | // An array of language ids which should be validated by ESLint
25 | "eslint.validate": [
26 | "javascript",
27 | "javascriptreact",
28 | "Babel Javascript",
29 | "typescript",
30 | "typescriptreact"
31 | ],
32 | "eslint.alwaysShowStatus": true,
33 | // typescript auto-format settings
34 | "typescript.tsdk": "node_modules/typescript/lib",
35 | "javascript.preferences.importModuleSpecifier": "auto",
36 | "typescript.preferences.importModuleSpecifier": "auto",
37 | "javascript.preferences.quoteStyle": "single",
38 | "typescript.preferences.quoteStyle": "single"
39 | }
40 | `;
41 | }
42 |
43 | module.exports = getVsCodeConfig;
44 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/getGitIgnoreTemplate.js:
--------------------------------------------------------------------------------
1 | function getGitIgnoreTemplate() {
2 | return `# Logs
3 | logs
4 | *.log
5 | npm-debug.log*
6 | yarn-debug.log*
7 | yarn-error.log*
8 |
9 | # Runtime data
10 | pids
11 | *.pid
12 | *.seed
13 | *.pid.lock
14 |
15 | # Directory for instrumented libs generated by jscoverage/JSCover
16 | lib-cov
17 |
18 | # Coverage directory used by tools like istanbul
19 | coverage
20 |
21 | # nyc test coverage
22 | .nyc_output
23 |
24 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
25 | .grunt
26 |
27 | # Bower dependency directory (https://bower.io/)
28 | bower_components
29 |
30 | # node-waf configuration
31 | .lock-wscript
32 |
33 | # Compiled binary addons (https://nodejs.org/api/addons.html)
34 | build/Release
35 |
36 | # Dependency directories
37 | node_modules/
38 | jspm_packages/
39 |
40 | # TypeScript v1 declaration files
41 | typings/
42 |
43 | # Optional npm cache directory
44 | .npm
45 |
46 | # Optional eslint cache
47 | .eslintcache
48 |
49 | # Optional REPL history
50 | .node_repl_history
51 |
52 | # Output of 'npm pack'
53 | *.tgz
54 |
55 | # Yarn Integrity file
56 | .yarn-integrity
57 |
58 | # dotenv environment variables file
59 | .env
60 |
61 | # next.js build output
62 | .next
63 |
64 | dist/
65 | `;
66 | }
67 |
68 | module.exports = getGitIgnoreTemplate;
69 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 |
2 | name: Release
3 |
4 | on:
5 | push:
6 | branches:
7 | - master
8 |
9 | # Automatically cancel in-progress actions on the same branch
10 | concurrency:
11 | group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.head_ref || github.ref }}
12 | cancel-in-progress: true
13 |
14 | jobs:
15 | build:
16 | name: Build and publish
17 | runs-on: ubuntu-latest
18 | steps:
19 | - name: Checkout code
20 | uses: actions/checkout@v2
21 | with:
22 | fetch-depth: 0
23 | token: ${{ secrets.GIO_GITHUB_TOKEN }}
24 | - name: Configure git username
25 | run: |
26 | git config --global user.name 'Giancarlos Isasi'
27 | git config --global user.email 'giancarlos.isasi@gmail.com'
28 | - name: Setup environment
29 | uses: actions/setup-node@v2
30 | with:
31 | node-version: '14'
32 | - name: Setup pnpm
33 | uses: pnpm/action-setup@v2.1.0
34 | with:
35 | version: 6.0.2
36 | run_install: true
37 | - name: Publish
38 | env:
39 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
40 | run: |
41 | echo "//registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN" > ~/.npmrc
42 | pnpm release
43 | pnpm release-publish
44 | git add .
45 | git commit -m "chore: [skip ci] release"
46 | git push --follow-tags
47 |
--------------------------------------------------------------------------------
/packages/eslint-config-webpack-nexus/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eslint-config-webpack-nexus",
3 | "version": "4.0.0",
4 | "description": "Eslint configuration user by webpack-nexus cli",
5 | "author": "Giancarlos ",
6 | "homepage": "https://github.com/GiancarlosIO/webpack-nexus#readme",
7 | "license": "MIT",
8 | "main": "lib/eslint-config-webpack-nexus.js",
9 | "publishConfig": {
10 | "access": "public"
11 | },
12 | "directories": {
13 | "lib": "lib",
14 | "test": "__tests__"
15 | },
16 | "files": [
17 | "lib"
18 | ],
19 | "repository": {
20 | "type": "git",
21 | "url": "git+https://github.com/GiancarlosIO/webpack-nexus.git"
22 | },
23 | "scripts": {
24 | "test": "echo \"Error: run tests from root\" && exit 1"
25 | },
26 | "bugs": {
27 | "url": "https://github.com/GiancarlosIO/webpack-nexus/issues"
28 | },
29 | "peerDependencies": {
30 | "@typescript-eslint/eslint-plugin": "^2.20.0",
31 | "@typescript-eslint/parser": "^2.20.0",
32 | "confusing-browser-globals": "^1.0.9",
33 | "eslint": "^6.7.1",
34 | "eslint-config-airbnb": "^18.0.1",
35 | "eslint-config-prettier": "^6.10.0",
36 | "eslint-plugin-import": "^2.18.2",
37 | "eslint-plugin-jsx-a11y": "^6.2.3",
38 | "eslint-plugin-prettier": "^3.1.1",
39 | "eslint-plugin-react": "^7.15.1",
40 | "eslint-plugin-react-hooks": "^1.7.0",
41 | "prettier": "^1.19.1",
42 | "typescript": "^3.9.6"
43 | },
44 | "dependencies": {
45 | "confusing-browser-globals": "^1.0.9"
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/examples/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
20 |
21 | React App
22 |
23 |
24 |
25 |
26 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/utils/installNpmPackages.js:
--------------------------------------------------------------------------------
1 | const { execSync } = require('child_process');
2 |
3 | const ora = require('ora');
4 | const chalk = require('chalk');
5 |
6 | /**
7 | * Install npm packages with yarn
8 | * fallback to npm if yarn is not installed in the current system
9 | *
10 | * @param {Object} config { packages, path }
11 | * @param {String} config.packages
12 | * @param {String} config.path
13 | * @param {Boolean} config.areDevDependencies
14 | * @returns {Promise}
15 | */
16 | function installNpmPackages({ packages, path, areDevDependencies }) {
17 | return new Promise((resolve, reject) => {
18 | const installingPackages = ora('npm: Installing packages...').start();
19 | /**
20 | * pass Pipe to silent the child process output
21 | * actually pipe is the default value but for some reason setting it changes its behavior
22 | * */
23 |
24 | try {
25 | execSync(
26 | `npm install ${packages} ${areDevDependencies ? '--save-dev' : ''}`,
27 | {
28 | encoding: 'utf8',
29 | stdio: 'pipe',
30 | cwd: path,
31 | },
32 | // (error, stdout, stderr) => {
33 | // if (error) {
34 | // ora.fail();
35 | // console.error(chalk.red(`\nexec error ${error}`));
36 | // reject(error);
37 | // return;
38 | // }
39 |
40 | // // this are just logs stuff
41 | // console.info(`\n${stderr}\n`);
42 | // },
43 | );
44 | installingPackages.succeed('Successfull to install npm packages.');
45 | resolve(true);
46 | } catch (npmError) {
47 | ora.fail();
48 | console.log(chalk.red('Error to install packages with npm'), npmError);
49 | resolve(npmError);
50 | }
51 | });
52 | }
53 |
54 | module.exports = installNpmPackages;
55 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webpack-nexus",
3 | "version": "0.0.1",
4 | "description": "A simple webpack-like-cli to scaffold your next react project",
5 | "main": "index.js",
6 | "repository": "git@github.com:GiancarlosIO/webpack-nexus.git",
7 | "author": "Giancarlos Isasi ",
8 | "license": "MIT",
9 | "publishConfig": {
10 | "access": "public"
11 | },
12 | "bin": "./src/index.js",
13 | "engines": {
14 | "node": "14.x",
15 | "pnpm": ">=6"
16 | },
17 | "scripts": {
18 | "release-all": "lerna publish",
19 | "prerelease": "changeset version --snapshot alpha",
20 | "prerelease-publish": "changeset publish --tag alpha --no-git-tag",
21 | "release": "changeset version",
22 | "release-publish": "changeset publish"
23 | },
24 | "dependencies": {
25 | "@changesets/cli": "2.21.0",
26 | "@typescript-eslint/eslint-plugin": "^1.12.0",
27 | "@typescript-eslint/parser": "^1.12.0",
28 | "babel-eslint": "10.0.1",
29 | "chalk": "2.4.2",
30 | "confusing-browser-globals": "^1.0.9",
31 | "eslint": "^5.3.0",
32 | "eslint-config-airbnb": "^17.1.1",
33 | "eslint-config-prettier": "4.2.0",
34 | "eslint-plugin-import": "^2.18.0",
35 | "eslint-plugin-jsx-a11y": "^6.2.3",
36 | "eslint-plugin-prettier": "3.0.1",
37 | "eslint-plugin-react": "^7.14.2",
38 | "eslint-plugin-react-hooks": "1.6.0",
39 | "express": "4.16.4",
40 | "inquirer": "6.3.1",
41 | "lerna": "^3.13.4",
42 | "lerna-wizard": "1.0.9",
43 | "ora": "3.4.0",
44 | "prettier": "^1.15.3",
45 | "semver": "6.0.0",
46 | "shelljs": "0.8.3",
47 | "slugify": "1.3.4",
48 | "typescript": "^3.2.1",
49 | "webpack": "4.30.0",
50 | "webpack-cli": "3.3.2",
51 | "webpack-dev-middleware": "3.6.2",
52 | "webpack-hot-middleware": "2.24.4",
53 | "yargs": "13.2.2"
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/templateFiles/react/apollo.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import { ApolloClient } from 'apollo-client';
4 | import { ApolloLink } from 'apollo-link';
5 | import { createHttpLink } from 'apollo-link-http';
6 | import { InMemoryCache } from 'apollo-cache-inmemory';
7 | import { onError } from 'apollo-link-error';
8 | import { ApolloProvider } from 'react-apollo';
9 |
10 | [extraImports];
11 |
12 | const cache = new InMemoryCache();
13 | const httpLink = createHttpLink({
14 | uri: 'https://48p1r2roz4.sse.codesandbox.io',
15 | credentials: 'include',
16 | });
17 |
18 | const errorLink = onError(({ graphQLErrors, networkError, operation }) => {
19 | if (graphQLErrors)
20 | // eslint-disable-next-line array-callback-return
21 | graphQLErrors.map(({ message, locations, path }) => {
22 | console.error(
23 | `[Graphql error]: Message: ${message}, Location: ${
24 | locations ? JSON.stringify(locations) : locations
25 | }, Path: ${path}`,
26 | );
27 | });
28 |
29 | if (operation.operationName === 'createSocketSession') {
30 | console.log(
31 | '%c Hey! looks like you have the socket feature activated and because you have not running the server the mutation is going to fail 😥. If you want to disable it just set socketDisable to true in the localStorage.',
32 | 'color: #09f; background: rgba(0,0,0,0.02); padding: 12px 0',
33 | );
34 | }
35 |
36 | if (networkError) {
37 | console.error(`[Network Error]: ${networkError}`);
38 | }
39 | });
40 |
41 | // the order is very important!
42 | const links = [errorLink, httpLink];
43 |
44 | const client = new ApolloClient({
45 | cache,
46 | link: ApolloLink.from(links),
47 | });
48 |
49 | const App = () => (
50 |
51 |
Hello world!!
52 |
53 | );
54 |
55 | ReactDOM.render(
56 |
57 |
58 |
59 |
60 | ,
61 | document.querySelector('#rootApp'),
62 | );
63 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/webpack/configurations/webpack.dev.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const WebpackBar = require('webpackbar');
3 | const merge = require('webpack-merge');
4 | const HtmlWebpackPlugin = require('html-webpack-plugin');
5 | const CircularDependencyPlugin = require('circular-dependency-plugin');
6 | const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
7 | const WebpackBuildNotifierPlugin = require('webpack-build-notifier');
8 |
9 | const webpackBaseConfig = require('./webpack.base');
10 |
11 | const createDevConfig = (config, extraConfig) =>
12 | merge(
13 | // webpackBase returns a webpack config
14 | webpackBaseConfig(
15 | {
16 | mode: 'development',
17 | output: {
18 | filename: `[name].min.js`,
19 | chunkFilename: `[name].chunk.js`,
20 | },
21 | optimization: {
22 | /* https://medium.com/@kenneth_chau/speeding-up-webpack-typescript-incremental-builds-by-7x-3912ba4c1d15 */
23 | removeAvailableModules: false,
24 | removeEmptyChunks: false,
25 | splitChunks: {
26 | chunks: 'all',
27 | },
28 | },
29 | plugins: [
30 | // This Webpack plugin enforces the entire path of all required modules match the exact case
31 | // of the actual path on disk.
32 | new webpack.HotModuleReplacementPlugin(),
33 | new WebpackBar(),
34 | new CaseSensitivePathsPlugin(),
35 | new HtmlWebpackPlugin({
36 | inject: true,
37 | template: extraConfig.htmlWebpackPluginTemplate,
38 | }),
39 | new CircularDependencyPlugin({
40 | exclude: /a\.js|node_modules/, // exclude node_modules
41 | failOnError: false,
42 | }),
43 | new webpack.NamedModulesPlugin(),
44 | new webpack.NoEmitOnErrorsPlugin(),
45 | new WebpackBuildNotifierPlugin(),
46 | ],
47 | devtool: 'source-map',
48 | performance: {
49 | hints: false, // why we need it? 🤔
50 | },
51 | // devServer => the webpack-dev-server config is in the server file
52 | },
53 | extraConfig,
54 | ),
55 | config,
56 | );
57 |
58 | module.exports = createDevConfig;
59 |
--------------------------------------------------------------------------------
/packages/babel-preset-webpack-nexus/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "babel-preset-webpack-nexus",
3 | "version": "3.0.0",
4 | "description": "Babel preset used by webpack-nexus cli",
5 | "author": "Giancarlos Isasi ",
6 | "homepage": "https://github.com/GiancarlosIO/webpack-nexus#readme",
7 | "license": "MIT",
8 | "main": "lib/babel-preset-webpack-nexus.js",
9 | "directories": {
10 | "lib": "lib",
11 | "test": "__tests__"
12 | },
13 | "files": [
14 | "lib"
15 | ],
16 | "repository": {
17 | "type": "git",
18 | "url": "git+https://github.com/GiancarlosIO/webpack-nexus.git"
19 | },
20 | "publishConfig": {
21 | "access": "public"
22 | },
23 | "scripts": {
24 | "test": "echo \"Error: run tests from root\" && exit 1"
25 | },
26 | "bugs": {
27 | "url": "https://github.com/GiancarlosIO/webpack-nexus/issues"
28 | },
29 | "peerDependencies": {
30 | "react": "^15.0.0 || ^16.0.0",
31 | "react-dom": "^15.0.0 || ^16.0.0",
32 | "styled-components": ">=2"
33 | },
34 | "devDependencies": {
35 | "react": "16",
36 | "react-dom": "16",
37 | "styled-components": "2"
38 | },
39 | "dependencies": {
40 | "@babel/core": "7.10.4",
41 | "@babel/plugin-proposal-class-properties": "7.10.4",
42 | "@babel/plugin-proposal-decorators": "7.10.4",
43 | "@babel/plugin-proposal-export-default-from": "7.2.0",
44 | "@babel/plugin-proposal-object-rest-spread": "7.10.4",
45 | "@babel/plugin-proposal-optional-chaining": "^7.10.4",
46 | "@babel/plugin-syntax-dynamic-import": "7.2.0",
47 | "@babel/plugin-transform-destructuring": "7.10.4",
48 | "@babel/plugin-transform-modules-commonjs": "7.10.4",
49 | "@babel/plugin-transform-react-constant-elements": "7.2.0",
50 | "@babel/plugin-transform-react-inline-elements": "7.2.0",
51 | "@babel/preset-env": "7.10.4",
52 | "@babel/preset-react": "7.10.4",
53 | "@babel/preset-typescript": "7.10.4",
54 | "babel-plugin-dynamic-import-node": "2.2.0",
55 | "babel-plugin-lodash": "3.3.4",
56 | "babel-plugin-styled-components": "1.10.0",
57 | "babel-plugin-transform-imports": "1.5.1",
58 | "babel-plugin-transform-inline-environment-variables": "0.4.3",
59 | "babel-plugin-transform-react-remove-prop-types": "0.4.24",
60 | "babel-plugin-transform-remove-console": "6.9.4",
61 | "babel-plugin-transform-remove-debugger": "6.9.4",
62 | "core-js": "3",
63 | "react-hot-loader": "4.12.15"
64 | },
65 | "gitHead": "ba33eeea9f155c64f1acce938a145d8907b533d2"
66 | }
67 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nexus-scripts",
3 | "version": "3.0.0",
4 | "description": "A script to up a webpack server for web development",
5 | "keywords": [
6 | "webpack",
7 | "react"
8 | ],
9 | "author": "Giancarlos Isasi ",
10 | "homepage": "https://github.com/GiancarlosIO/webpack-nexus#readme",
11 | "license": "MIT",
12 | "main": "lib/nexus-scripts.js",
13 | "directories": {
14 | "lib": "lib",
15 | "test": "__tests__"
16 | },
17 | "files": [
18 | "lib",
19 | "bin"
20 | ],
21 | "repository": {
22 | "type": "git",
23 | "url": "git+https://github.com/GiancarlosIO/webpack-nexus.git"
24 | },
25 | "publishConfig": {
26 | "access": "public"
27 | },
28 | "scripts": {
29 | "test": "echo \"Error: run tests from root\" && exit 1"
30 | },
31 | "bugs": {
32 | "url": "https://github.com/GiancarlosIO/webpack-nexus/issues"
33 | },
34 | "bin": {
35 | "nexus-scripts": "./bin/nexus-scripts.js"
36 | },
37 | "dependencies": {
38 | "@babel/cli": "7.10.4",
39 | "@babel/core": "7.10.4",
40 | "@babel/node": "7.2.2",
41 | "@babel/register": "7.10.4",
42 | "@babel/runtime": "7.10.4",
43 | "@fullhuman/postcss-purgecss": "^1.3.0",
44 | "autoprefixer": "^9.7.2",
45 | "babel-loader": "8.0.5",
46 | "babel-preset-webpack-nexus": "workspace:*",
47 | "case-sensitive-paths-webpack-plugin": "2.2.0",
48 | "chalk": "2.4.2",
49 | "circular-dependency-plugin": "5.0.2",
50 | "connect-history-api-fallback": "^1.6.0",
51 | "core-js": "^3.6.5",
52 | "cors": "2.8.5",
53 | "css-loader": "^3.2.0",
54 | "express": "4.16.4",
55 | "graphql": "^14.5.8",
56 | "graphql-tag": "^2.10.1",
57 | "html-webpack-plugin": "3.2.0",
58 | "ip": "1.1.5",
59 | "mini-css-extract-plugin": "^0.8.0",
60 | "open": "6.2.0",
61 | "optimize-css-assets-webpack-plugin": "^5.0.3",
62 | "postcss-loader": "^3.0.0",
63 | "regenerator-runtime": "^0.13.2",
64 | "sass-loader": "^8.0.0",
65 | "style-loader": "^1.0.0",
66 | "tailwindcss": "^1.1.3",
67 | "terser-webpack-plugin": "1.2.3",
68 | "webpack": "4.43.0",
69 | "webpack-build-notifier": "1.0.2",
70 | "webpack-bundle-analyzer": "3.3.2",
71 | "webpack-cli": "3.3.2",
72 | "webpack-dev-middleware": "3.6.2",
73 | "webpack-dev-server": "3.3.1",
74 | "webpack-hot-middleware": "2.24.4",
75 | "webpack-merge": "4.2.1",
76 | "webpackbar": "4.0.0",
77 | "yargs": "13.2.2"
78 | },
79 | "gitHead": "ba33eeea9f155c64f1acce938a145d8907b533d2"
80 | }
81 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/nexus-scripts.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 |
4 | const { argv } = require('yargs');
5 | const chalk = require('chalk');
6 |
7 | // core scripts
8 | const start = require('./scripts/start');
9 | const build = require('./scripts/build');
10 |
11 | const { ERRORS } = require('./strings');
12 |
13 | const rootAppDirectoryPath = fs.realpathSync(process.cwd());
14 | const srcAppDirectoryPath = path.resolve(rootAppDirectoryPath, 'src/');
15 | const fileAppRootPathJS = path.resolve(srcAppDirectoryPath, 'index.js');
16 | const fileAppRootPathTS = path.resolve(srcAppDirectoryPath, 'index.ts');
17 | const fileAppRootPathTSX = path.resolve(srcAppDirectoryPath, 'index.tsx');
18 | const htmlWebpackPluginTemplate = path.resolve(
19 | srcAppDirectoryPath,
20 | 'index.html',
21 | );
22 |
23 | let fileAppRootPath = null;
24 |
25 | if (fs.existsSync(fileAppRootPathJS)) {
26 | fileAppRootPath = fileAppRootPathJS;
27 | } else if (fs.existsSync(fileAppRootPathTS)) {
28 | fileAppRootPath = fileAppRootPathTS;
29 | } else if (fs.existsSync(fileAppRootPathTSX)) {
30 | fileAppRootPath = fileAppRootPathTSX;
31 | }
32 |
33 | if (!fileAppRootPath) {
34 | return console.log(
35 | chalk.red(ERRORS.mainJSFileNotExists(srcAppDirectoryPath)),
36 | );
37 | }
38 |
39 | if (!fs.existsSync(htmlWebpackPluginTemplate)) {
40 | return console.log(
41 | chalk.red(ERRORS.mainHTMLFileNotExists(srcAppDirectoryPath)),
42 | );
43 | }
44 |
45 | const PORT = argv.port || process.env.PORT || 3000;
46 |
47 | const isAnalyzerEnabled = argv.analyzer;
48 | const {
49 | clearConsole,
50 | openBrowser,
51 | reactProfiler,
52 | withGraphql,
53 | withTailwindcss,
54 | } = argv;
55 |
56 | const extraConfiguration = {
57 | rootAppDirectoryPath,
58 | srcAppDirectoryPath,
59 | fileAppRootPath: [
60 | 'core-js/stable',
61 | 'regenerator-runtime/runtime',
62 | fileAppRootPath,
63 | ],
64 | PORT,
65 | htmlWebpackPluginTemplate,
66 | // extra helper vars
67 | isAnalyzerEnabled,
68 | reactProfiler,
69 | clearConsole: clearConsole !== 'false',
70 | openBrowser: openBrowser !== 'false',
71 | withGraphql,
72 | withTailwindcss,
73 | };
74 |
75 | const commands = {
76 | start,
77 | build,
78 | };
79 |
80 | const commandToRun = commands[argv._[0]];
81 |
82 | // validate argvs
83 | if (!argv._[0]) {
84 | console.error(
85 | chalk.red(`
86 | You need to specify a command to run 😠
87 | `),
88 | );
89 | } else if (!commandToRun) {
90 | console.error(
91 | chalk.red(`
92 | This command doesn't exists in the webpack-nexus cli 😓
93 | `),
94 | );
95 | } else {
96 | commandToRun({ argv, extraConfiguration });
97 | }
98 |
--------------------------------------------------------------------------------
/examples/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@hot-loader/react-dom@^16.11.0":
6 | version "16.11.0"
7 | resolved "https://registry.yarnpkg.com/@hot-loader/react-dom/-/react-dom-16.11.0.tgz#c0b483923b289db5431516f56ee2a69448ebf9bd"
8 | integrity sha512-cIOVB8YgT4EVCNiXK+gGuYl6adW/TKlW3N7GvgY5QgpL2NTWagF/oJxVscHSdR3O7NjJsoxdseB5spqwCHNIhA==
9 | dependencies:
10 | loose-envify "^1.1.0"
11 | object-assign "^4.1.1"
12 | prop-types "^15.6.2"
13 | scheduler "^0.17.0"
14 |
15 | "js-tokens@^3.0.0 || ^4.0.0":
16 | version "4.0.0"
17 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
18 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
19 |
20 | loose-envify@^1.1.0, loose-envify@^1.4.0:
21 | version "1.4.0"
22 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
23 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
24 | dependencies:
25 | js-tokens "^3.0.0 || ^4.0.0"
26 |
27 | object-assign@^4.1.1:
28 | version "4.1.1"
29 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
30 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
31 |
32 | prop-types@^15.6.2:
33 | version "15.7.2"
34 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
35 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
36 | dependencies:
37 | loose-envify "^1.4.0"
38 | object-assign "^4.1.1"
39 | react-is "^16.8.1"
40 |
41 | react-dom@16.8.6:
42 | version "16.8.6"
43 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
44 | integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==
45 | dependencies:
46 | loose-envify "^1.1.0"
47 | object-assign "^4.1.1"
48 | prop-types "^15.6.2"
49 | scheduler "^0.13.6"
50 |
51 | react-is@^16.8.1:
52 | version "16.8.6"
53 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
54 | integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
55 |
56 | react@16.8.6:
57 | version "16.8.6"
58 | resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
59 | integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==
60 | dependencies:
61 | loose-envify "^1.1.0"
62 | object-assign "^4.1.1"
63 | prop-types "^15.6.2"
64 | scheduler "^0.13.6"
65 |
66 | scheduler@^0.13.6:
67 | version "0.13.6"
68 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889"
69 | integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==
70 | dependencies:
71 | loose-envify "^1.1.0"
72 | object-assign "^4.1.1"
73 |
74 | scheduler@^0.17.0:
75 | version "0.17.0"
76 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe"
77 | integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==
78 | dependencies:
79 | loose-envify "^1.1.0"
80 | object-assign "^4.1.1"
81 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/webpack/server.js:
--------------------------------------------------------------------------------
1 | const express = require('express');
2 | const cors = require('cors');
3 | const chalk = require('chalk');
4 | const ip = require('ip');
5 | const open = require('open');
6 | const webpack = require('webpack');
7 | const webpackDevMiddleware = require('webpack-dev-middleware');
8 | const webpackHotMiddleware = require('webpack-hot-middleware');
9 | const historyApiFallback = require('connect-history-api-fallback');
10 |
11 | const webpackDevConfig = require('./configurations/webpack.dev');
12 |
13 | // utils
14 | const clearConsole = require('../utils/clearConsole');
15 |
16 | const runServer = extraConfiguration => {
17 | const webpackConfig = webpackDevConfig({}, extraConfiguration);
18 | const hmrSocketPath = `${webpackConfig.output.publicPath}__webpack_hmr`;
19 | // const webpackHotMiddlewarePackagePath = path.resolve(
20 | // __dirname,
21 | // '../../node_modules/webpack-hot-middleware',
22 | // );
23 | const hotClientScript = `webpack-hot-middleware/client?path=${hmrSocketPath}&timeout=20000&reload=true`;
24 |
25 | // add the webpack-dev-middleware client to connect to the socket
26 | webpackConfig.entry = [...webpackConfig.entry, hotClientScript];
27 | // const HMR_PATH = `${webpackConfig.devServer.publicPath}__webpack_hmr`;
28 | // const hotMiddlewareScript = `webpack-hot-middleware/client`;
29 |
30 | const compiler = webpack(webpackConfig);
31 | const devMiddleware = webpackDevMiddleware(compiler, {
32 | open: true,
33 | publicPath: webpackConfig.output.publicPath,
34 | port: extraConfiguration.PORT,
35 | overlay: {
36 | warnings: false,
37 | errors: true,
38 | },
39 | headers: {
40 | 'Access-Control-Allow-Origin': '*',
41 | 'Access-Control-Allow-Methods': 'GET,OPTIONS,HEAD,PUT,POST,DELETE,PATCH',
42 | 'Access-Control-Allow-Headers':
43 | 'Origin, Content-Type, Accept, Authorization, X-Request-With',
44 | 'Access-Control-Allow-Credentials': 'true',
45 | },
46 | // Supress the extensive stats normally printed after a dev build (since sizes are mostly useless):
47 | stats: {
48 | all: false,
49 | assets: false,
50 | chunks: false,
51 | errors: true,
52 | hash: false,
53 | modules: false,
54 | performance: false,
55 | reasons: false,
56 | timings: true,
57 | warnings: false,
58 | builtAt: true,
59 | errorsDetails: true,
60 | publicPath: true,
61 | },
62 | // Supress forwading of webpack logs to the browser console:
63 | clientLogLevel: 'errors-only',
64 | logLevel: 'warn',
65 | });
66 | const hotMiddleware = webpackHotMiddleware(compiler, {
67 | path: hmrSocketPath,
68 | });
69 |
70 | const app = express();
71 |
72 | app.use(
73 | historyApiFallback({
74 | verbose: false,
75 | }),
76 | );
77 |
78 | app.use(cors());
79 | app.use(devMiddleware);
80 | app.use(hotMiddleware);
81 |
82 | app.listen(extraConfiguration.PORT, () => {
83 | if (extraConfiguration.clearConsole) {
84 | clearConsole();
85 | }
86 | console.log(`
87 | ${chalk.green('Server successfuly started')} 🎉
88 |
89 | ${chalk.blue('---------------------------------')}
90 | URL: ${chalk.blue.bold(`http://localhost:${extraConfiguration.PORT}`)}
91 | LAN: ${chalk.blue.bold(`http://${ip.address()}:${extraConfiguration.PORT}`)}
92 | ${chalk.blue('---------------------------------')}
93 |
94 | ${chalk.red(`Press ${chalk.italic('CTRL-C')} to stop`)}
95 | `);
96 |
97 | if (extraConfiguration.openBrowser) {
98 | open(
99 | `http://localhost:${extraConfiguration.PORT}${webpackConfig.output.publicPath}`,
100 | );
101 | }
102 | });
103 | };
104 |
105 | module.exports = runServer;
106 |
--------------------------------------------------------------------------------
/packages/babel-preset-webpack-nexus/lib/babel-preset-webpack-nexus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable global-require */
2 | module.exports = () => {
3 | const isProduction = process.env.NODE_ENV === 'production';
4 | const styledPlugin = [
5 | require('babel-plugin-styled-components'),
6 | {
7 | displayName: !isProduction,
8 | preprocess: false,
9 | ssr: true,
10 | minify: false,
11 | pure: isProduction,
12 | },
13 | ];
14 |
15 | return {
16 | presets: [
17 | [
18 | require('@babel/preset-env'),
19 | {
20 | // dont convert modules to commonjs, we need to keep it with es6 imports to apply treeshaking
21 | modules: false,
22 | // Allow importing core-js in entrypoint and use browserlist to select polyfills
23 | useBuiltIns: 'entry', // maybe here we can try 'usage' 🤔
24 | corejs: '3.0',
25 | targets: isProduction
26 | ? ['>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9']
27 | : [
28 | 'last 2 chrome versions',
29 | 'last 2 firefox versions',
30 | 'last 2 edge versions',
31 | ],
32 | // Exclude transforms that make all code slower
33 | exclude: ['transform-typeof-symbol'],
34 | },
35 | ],
36 | [
37 | require('@babel/preset-react'),
38 | {
39 | // Adds component stack to warning messages
40 | // Adds __self attribute to JSX which React will use for some warnings
41 | development: !isProduction,
42 | // Will use the native built-in instead of trying to polyfill
43 | // behavior for any plugins that require one.
44 | useBuiltIns: true,
45 | },
46 | ],
47 | require('@babel/preset-typescript'),
48 | ],
49 | env: {
50 | test: {
51 | presets: [require('@babel/preset-env')],
52 | plugins: [
53 | styledPlugin,
54 | require('@babel/plugin-transform-modules-commonjs'),
55 | require('babel-plugin-dynamic-import-node'),
56 | ],
57 | },
58 | production: {
59 | plugins: [
60 | styledPlugin,
61 | require('@babel/plugin-transform-react-constant-elements'),
62 | require('babel-plugin-transform-react-remove-prop-types'),
63 | // we need a polyfill to use this plugin!!!
64 | require('@babel/plugin-transform-react-inline-elements'),
65 | [
66 | require('babel-plugin-transform-remove-console'),
67 | { exclude: ['error', 'warn'] },
68 | ],
69 | require('babel-plugin-transform-remove-debugger'),
70 | require('babel-plugin-lodash'),
71 | require('babel-plugin-transform-inline-environment-variables'),
72 | require('@babel/plugin-proposal-object-rest-spread'),
73 | ],
74 | },
75 | },
76 | plugins: [
77 | styledPlugin,
78 | // TODO: make work the hot reload with react!
79 | require('react-hot-loader/babel'),
80 | [
81 | require('@babel/plugin-transform-destructuring'),
82 | {
83 | // Use loose mode for performance:
84 | // https://github.com/facebook/create-react-app/issues/5602
85 | loose: false,
86 | selectiveLoose: [
87 | 'useState',
88 | 'useEffect',
89 | 'useContext',
90 | 'useReducer',
91 | 'useCallback',
92 | 'useMemo',
93 | 'useRef',
94 | 'useImperativeHandle',
95 | 'useLayoutEffect',
96 | 'useDebugValue',
97 | ],
98 | },
99 | ],
100 | require('@babel/plugin-proposal-export-default-from'),
101 | [
102 | require('@babel/plugin-proposal-decorators'),
103 | {
104 | legacy: true,
105 | },
106 | ],
107 | [
108 | require('@babel/plugin-proposal-class-properties'),
109 | {
110 | loose: true,
111 | },
112 | ],
113 | require('@babel/plugin-syntax-dynamic-import'),
114 | require('@babel/plugin-proposal-optional-chaining'),
115 | /**
116 | * Hey!
117 | * transform-runtime plugin only works for build libraries!
118 | * Don't use this for built a web app!
119 | */
120 | // '@babel/plugin-transform-runtime',
121 | ],
122 | };
123 | };
124 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/webpack/configurations/webpack.prod.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const merge = require('webpack-merge');
3 | const TerserPlugin = require('terser-webpack-plugin');
4 | const HtmlWebpackPlugin = require('html-webpack-plugin');
5 | const MiniCssExtractPlugin = require('mini-css-extract-plugin');
6 | const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
7 |
8 | const webpackBase = require('./webpack.base');
9 |
10 | const createProdConfig = (config = {}, extraConfig) =>
11 | merge(
12 | // webpackBase returns a webpack config
13 | webpackBase(
14 | {
15 | mode: 'production',
16 | output: {
17 | filename: `[name].[hash].min.js`,
18 | chunkFilename: `[name].[chunkhash].chunk.js`,
19 | },
20 | optimization: {
21 | /* https://medium.com/@kenneth_chau/speeding-up-webpack-typescript-incremental-builds-by-7x-3912ba4c1d15 */
22 | removeAvailableModules: true,
23 | removeEmptyChunks: true,
24 | minimize: true,
25 | minimizer: [
26 | new TerserPlugin({
27 | terserOptions: {
28 | warnings: false,
29 | compress: {
30 | comparisons: false,
31 | },
32 | parse: {},
33 | mangle: true,
34 | output: {
35 | comments: false,
36 | ascii_only: true,
37 | },
38 | },
39 | parallel: true,
40 | cache: true,
41 | // TODO, generate the source map files after the compilation ends
42 | sourceMap: false,
43 | }),
44 | new OptimizeCSSAssetsPlugin({
45 | cssProcessorPluginOptions: {
46 | preset: ['default', { discardComments: { removeAll: true } }],
47 | },
48 | }),
49 | ],
50 | nodeEnv: 'production',
51 | // investigate why it is needed
52 | sideEffects: true,
53 | concatenateModules: true,
54 | runtimeChunk: true,
55 | splitChunks: {
56 | name: true,
57 | maxAsyncRequests: 10,
58 | maxInitialRequests: 10,
59 | // investigate why 'all' is the best option
60 | chunks: 'all',
61 | // investigate why 0 is better that 300000
62 | minSize: 0,
63 | // remove this configurations to reduce number of file request
64 | // cacheGroups: {
65 | // vendor: {
66 | // test: /[\\/]node_modules[\\/]/,
67 | // name(module) {
68 | // const packageName = module.context.match(
69 | // /[\\/]node_modules[\\/](.*?)([\\/]|$)/,
70 | // )[1];
71 |
72 | // return `npm.${packageName.replace('@', '')}`;
73 | // },
74 | // },
75 | // },
76 | },
77 | },
78 | plugins: [
79 | // minify and optimize the html
80 | new HtmlWebpackPlugin({
81 | template: extraConfig.htmlWebpackPluginTemplate,
82 | minify: {
83 | removeComments: true,
84 | collapseWhitespace: true,
85 | removeRedundantAttributes: true,
86 | useShortDoctype: true,
87 | removeEmptyAttributes: true,
88 | removeStyleLinkTypeAttributes: true,
89 | keepClosingSlash: true,
90 | minifyJS: true,
91 | minifyCSS: true,
92 | minifyURLs: true,
93 | },
94 | inject: true,
95 | }),
96 | // https://github.com/webpack/webpack/issues/7421
97 | new webpack.HashedModuleIdsPlugin({
98 | hashFunction: 'sha256',
99 | hashDigest: 'hex',
100 | hashDigestLength: 20,
101 | }),
102 | new MiniCssExtractPlugin({
103 | filename: '[name].[contenthash].css',
104 | }),
105 | // ignore the .map and favicon files?????
106 | // performance: {
107 | // assetFilter: assetFilename =>
108 | // !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename),
109 | // },
110 | ],
111 | },
112 | extraConfig,
113 | ),
114 | config,
115 | );
116 |
117 | module.exports = createProdConfig;
118 |
--------------------------------------------------------------------------------
/packages/nexus-scripts/lib/webpack/configurations/webpack.base.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable global-require */
2 | const path = require('path');
3 |
4 | const webpack = require('webpack');
5 | const merge = require('webpack-merge');
6 | const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
7 | const postcssPurgecss = require('@fullhuman/postcss-purgecss');
8 | const MiniCssExtractPlugin = require('mini-css-extract-plugin');
9 |
10 | const createBaseConfig = (config, extraConfig) => {
11 | const isProduction = process.env.NODE_ENV === 'production';
12 | const purgecss = postcssPurgecss({
13 | content: [
14 | path.join(extraConfig.rootAppDirectoryPath, 'src/**/*.js'),
15 | path.join(extraConfig.rootAppDirectoryPath, 'src/**/*.tsx'),
16 | path.join(extraConfig.rootAppDirectoryPath, 'src/**/*.ts'),
17 | path.join(extraConfig.rootAppDirectoryPath, 'src/**/*.html'),
18 | ],
19 | // Include any special characters you're using in this regular expression
20 | defaultExtractor: content => content.match(/[\w-/:]+(? npm install -g webpack-nexus
39 |
40 | yarn
41 | > yarn global add webpack-nexus
42 |
43 | ### Create an app
44 | > webpack-nexus the-name-of-your-project
45 |
46 | You can use the additional argvs to customize the tech stack.
47 | * withApollo: Setup apollo client (v3) and add graphql-tag loader to webpack
48 | * withTailwindcss: Setup tailwind css and add purgecss in production mode.
49 |
50 | > webpack-nexus the-name-of-your-project --withApollo
51 |
52 | > webpack-nexus the-name-of-your-project --withTailwindcss
53 |
54 | It will create a folder with your project name, navigate to it.
55 |
56 | > cd the-name-of-your-project
57 |
58 | ```
59 | the-name-of-your-project
60 | ├── .vscode
61 | ├── node_modules
62 | ├── package.json
63 | ├── .yarn.lock
64 | ├── .tsconfig
65 | ├── .gitignore
66 | ├── .eslintrc
67 | ├── .eslintignore
68 | ├── dist
69 | └── src
70 | ├── index.tsx
71 | └── index.html
72 | ```
73 |
74 | ### Start coding with:
75 | > yarn start # or npm start
76 |
77 | To compile in production mode:
78 | > yarn build # or npm run build
79 |
80 |
81 | That's it, happy coding! 🎉
82 |
83 |
84 | More commands are coming... ⏳
85 |
86 | ## Stack used:
87 | - Webpack
88 | - Babel
89 | - Typescript
90 | - Eslint (typescript-parser)
91 | - React
92 | - vscode configuration
93 | - _Jest: coming soon_
94 | - _Apollo client: coming soon_
95 | - _Lint staged + husky: coming soon_
96 |
97 | ## Project structure
98 |
99 | This project is a mono-repo built with lerna.
100 |
101 | ```
102 | webpack-nexus
103 | ├── packages
104 | ├──── babel-preset-webpack-nexus
105 | ├──── eslint-config-webpack-nexus
106 | ├──── nexus-scripts
107 | ├──── webpack-nexus
108 | ```
109 |
110 |
111 | ## Roadmap
112 |
113 | * [x] Finish to implement the main core packages (eslint-config, babel-preset and nexus-scripts, webpack-nexus cli).
114 | * [ ] Finish to implement the rest of comands (withApollo, withTypescript, withTailwind, etc).
115 | * [ ] Finish to implement the interactive cli. Displays questions about the configuration/stack to use.
116 | * [ ] Create the end-to-end tests for the CLI.
117 | * [ ] Create a webpack-nexus.js config file to customize the webpack and babel configurations.
118 | * [ ] Create a documentation of each core package.
119 |
120 | ## Browser support
121 | > \>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9
122 |
123 | ## Some questions:
124 |
125 | ### I don't want to use typescript, javascript is good for me.
126 |
127 | By default it will create a .tsx file in the src folder but you can change it for a .js or .ts file.
128 |
129 | ### Why I created this project?
130 |
131 | Well, actually I have two reasons for this:
132 |
133 | 1. I hate the boilerplate I have to do to start a new project. So I created a cli to start a project in a rapid way.
134 | 2. I want to learn how to build something like create-react-app/next.js.
135 |
136 | ### What is the difference with other projects like create-react-app/react-boilerplate/next.js?
137 |
138 | _I want to learn how to build something like create-react-app/next.js. I'm not trying to compete with the big current cli's/boilerplates_
139 |
140 | It has a lot of specific configurations used in all of my side-projects, so maybe you are good using the other ones.
141 |
142 | Ok, so, I tested create-react-app and I think it is awesome but I don't like the way it works.
143 |
144 | - You need to _eject_ to add your own webpack or babel plugins.
145 | - You need to _eject_ to configure/add prettier/eslint rules.
146 | - If you have lint errors it will throw a error. Some times I just want to test some egde cases. webpack-nexus doesn't throw a error because it is not configured inside webpack, it is just used to lint the files in vscode.
147 | - It doesn't have support for multi-entries. It can be configured for that, but again, you need to _eject_.
148 | - It has no styled-components installed.
149 | - It has no apollo graphql configured. Graphql is what I always use in my projects.
150 | - It has no react-hot-loader configured.
151 |
152 |
153 | react-boilerplate? I really like that, but I just wanted a simple cli to scaffold my projects and not to clone a repository every time.
154 |
155 | And... It is not comparable with next.js because it is not a react framework 👺... but maybe in the future it can be? 🤔
156 |
157 | ## Inspirations:
158 | - https://github.com/react-boilerplate/react-boilerplate
159 | - https://github.com/facebook/create-react-app
160 | - https://github.com/zeit/next.js
161 | - https://github.com/kentcdodds/kcd-scripts
162 |
163 | ## Issues
164 | This project is still in development. So, if you find some improvements or errors go ahead and create an issue. 😃
165 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/README.md:
--------------------------------------------------------------------------------
1 | # webpack-nexus 🐨 [](https://www.npmjs.com/package/webpack-nexus) [](https://www.npmjs.com/package/webpack-nexus) [](https://lerna.js.org/)
2 |
3 |
4 | ### Scaffold your project in a couple of seconds. Webpack, Babel, Typescript, React, _Apollo_, syled-components, Eslint, Prettier and VSCode config out of the box.
5 |
6 | _The most successful dev work smart, not hard._
7 |
8 | ---
9 |
10 | Webpack nexus is a _simple_ CLI to scaffold your javascript/react projects.
11 |
12 | ## Features
13 | * Webpack: Dev and Prod configurations inspired by the awesome work of [React boilerplate](https://github.com/react-boilerplate/react-boilerplate) 🔨
14 | * Babel: ES6/ES7, Jsx and plugins configured for dev and production mode. ⚛️
15 | * Styling with styled-components and tailwind (it use purgecss under the hook to remove unused css rules) 💅
16 | * Typing with typescript and eslint ✔️
17 | * Auto formatter with prettier 🔄
18 | * vscode configured to work with eslint + typescript + prettier 💙
19 | * React-apollo: with withApollo flag in the command line
20 | * _Jest: coming soon.._
21 | * _Husky + lint-stagged: coming soon..._
22 | * _webpack-nexus.js: file to configure/overrite the actual webpack/babel configuration, coming soon..._
23 | * _Setup/configurations for atom and sublime, coming soon..._
24 |
25 | ## Quick links
26 | - [Usage](#usage)
27 | - [Stack used](#stack-used)
28 | - [Project structure](#project-structure)
29 | - [Roadmap](#roadmap)
30 | - [Browser support](#browser-support)
31 | - [Some questions](#some-questions)
32 | - [Inspirations](#Inspirations)
33 |
34 | ## Usage
35 |
36 | ### Install
37 | npm:
38 | > npm install -g webpack-nexus
39 |
40 | yarn
41 | > yarn global add webpack-nexus
42 |
43 | ### Create an app
44 | > webpack-nexus the-name-of-your-project
45 |
46 | You can use the additional argvs to customize the tech stack.
47 | * withApollo: Setup apollo client (v3) and add graphql-tag loader to webpack
48 | * withTailwindcss: Setup tailwind css and add purgecss in production mode.
49 |
50 | > webpack-nexus the-name-of-your-project --withApollo
51 | > webpack-nexus the-name-of-your-project --withTailwindcss
52 |
53 | It will create a folder with your project name, navigate to it.
54 |
55 | > cd the-name-of-your-project
56 |
57 | ```
58 | the-name-of-your-project
59 | ├── .vscode
60 | ├── node_modules
61 | ├── package.json
62 | ├── .yarn.lock
63 | ├── .tsconfig
64 | ├── .gitignore
65 | ├── .eslintrc
66 | ├── .eslintignore
67 | ├── dist
68 | └── src
69 | ├── index.tsx
70 | └── index.html
71 | ```
72 |
73 | ### Start coding with:
74 | > yarn start # or npm start
75 |
76 | To compile in production mode:
77 | > yarn build # or npm run build
78 |
79 |
80 | That's it, happy coding! 🎉
81 |
82 |
83 | More commands are coming... ⏳
84 |
85 | ## Stack used:
86 | - Webpack
87 | - Babel
88 | - Typescript
89 | - Eslint (typescript-parser)
90 | - React
91 | - vscode configuration
92 | - _Jest: coming soon_
93 | - _Apollo client: coming soon_
94 | - _Lint staged + husky: coming soon_
95 |
96 | ## Project structure
97 |
98 | This project is a mono-repo built with lerna.
99 |
100 | ```
101 | webpack-nexus
102 | ├── packages
103 | ├──── babel-preset-webpack-nexus
104 | ├──── eslint-config-webpack-nexus
105 | ├──── nexus-scripts
106 | ├──── webpack-nexus
107 | ```
108 |
109 |
110 | ## Roadmap
111 |
112 | * [x] Finish to implement the main core packages (eslint-config, babel-preset and nexus-scripts, webpack-nexus cli).
113 | * [ ] Finish to implement the rest of comands (withApollo, withTypescript, withTailwind, etc).
114 | * [ ] Finish to implement the interactive cli. Displays questions about the configuration/stack to use.
115 | * [ ] Create the end-to-end tests for the CLI.
116 | * [ ] Create a webpack-nexus.js config file to customize the webpack and babel configurations.
117 | * [ ] Create a documentation of each core package.
118 |
119 | ## Browser support
120 | > \>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9
121 |
122 | ## Some questions:
123 |
124 | ### I don't want to use typescript, javascript is good for me.
125 |
126 | By default it will create a .tsx file in the src folder but you can change it for a .js or .ts file.
127 |
128 | ### Why I created this project?
129 |
130 | Well, actually I have two reasons for this:
131 |
132 | 1. I hate the boilerplate I have to do to start a new project. So I created a cli to start a project in a rapid way.
133 | 2. I want to learn how to build something like create-react-app/next.js.
134 |
135 | ### What is the difference with other projects like create-react-app/react-boilerplate/next.js?
136 |
137 | _I want to learn how to build something like create-react-app/next.js. I'm not trying to compete with the big current cli's/boilerplates_
138 |
139 | It has a lot of specific configurations used in all of my side-projects, so maybe you are good using the other ones.
140 |
141 | Ok, so, I tested create-react-app and I think it is awesome but I don't like the way it works.
142 |
143 | - You need to _eject_ to add your own webpack or babel plugins.
144 | - You need to _eject_ to configure/add prettier/eslint rules.
145 | - If you have lint errors it will throw a error. Some times I just want to test some egde cases. webpack-nexus doesn't throw a error because it is not configured inside webpack, it is just used to lint the files in vscode.
146 | - It doesn't have support for multi-entries. It can be configured for that, but again, you need to _eject_.
147 | - It has no styled-components installed.
148 | - It has no apollo graphql configured. Graphql is what I always use in my projects.
149 | - It has no react-hot-loader configured.
150 |
151 |
152 | react-boilerplate? I really like that, but I just wanted a simple cli to scaffold my projects and not to clone a repository every time.
153 |
154 | And... It is not comparable with next.js because it is not a react framework 👺... but maybe in the future it can be? 🤔
155 |
156 | ## Inspirations:
157 | - https://github.com/react-boilerplate/react-boilerplate
158 | - https://github.com/facebook/create-react-app
159 | - https://github.com/zeit/next.js
160 | - https://github.com/kentcdodds/kcd-scripts
161 |
162 | ## Issues
163 | This project is still in development. So, if you find some improvements or errors go ahead and create an issue. 😃
--------------------------------------------------------------------------------
/packages/webpack-nexus/lib/webpack-nexus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable newline-after-var */
2 | const fs = require('fs');
3 | const path = require('path');
4 | // const { exec, execSync } = require('child_process');
5 |
6 | // const inquirer = require('inquirer');
7 | const chalk = require('chalk');
8 | // const ora = require('ora');
9 | const parseArgs = require('minimist');
10 |
11 | const createFolder = require('./utils/createFolder');
12 | const installNpmPackages = require('./utils/installNpmPackages');
13 | const stringifyNpmPackages = require('./utils/stringifyNpmPackages');
14 |
15 | const getPackageJsonTemplate = require('./templateFiles/getPackageJsonTemplate');
16 | const getGitIgnoreContent = require('./templateFiles/getGitIgnoreTemplate');
17 | const getHtmlTemplate = require('./templateFiles/getHtmlTemplate');
18 | const getEslintTemplate = require('./templateFiles/getEslintTemplate');
19 | const getTsConfigTemplate = require('./templateFiles/getTsConfigTemplate');
20 | const getVsCodeConfig = require('./templateFiles/getVsCodeConfig');
21 |
22 | // 1. accept the name of the project like second param
23 | const argv = parseArgs(process.argv.slice(2), {
24 | alias: { 'package-manager': 'pm' },
25 | });
26 |
27 | const projectName = argv._[0];
28 | const { withApollo, withTailwindcss } = argv;
29 |
30 | async function main() {
31 | if (!projectName) {
32 | console.log(
33 | chalk.red(
34 | 'We need the name of the project :(.\nEx: webpack-nexus my-new-project',
35 | ),
36 | );
37 | process.exit(1);
38 | }
39 |
40 | try {
41 | const folderPath = path.join(process.cwd(), projectName);
42 |
43 | // 2. Create the folder with the name of the project
44 | await createFolder({
45 | pathToCreate: folderPath,
46 | folderName: projectName,
47 | });
48 |
49 | /**
50 | * 3. Copy the main folders and files
51 | * - package.json: react, react-dom, nexus-scripts, styled-components
52 | * - .gitignore
53 | */
54 | // ======================== package.json ========================= //
55 | const packageJsonPath = path.join(folderPath, 'package.json');
56 | const extraParams = [
57 | withTailwindcss ? '--withTailwindcss' : '',
58 | withApollo ? '--withGraphql' : '',
59 | ];
60 | const packageJsonContent = getPackageJsonTemplate({
61 | projectName,
62 | extraNexusArgs: extraParams.join(' '),
63 | });
64 | fs.writeFileSync(packageJsonPath, packageJsonContent);
65 |
66 | // ======================== .gitignore ========================= //
67 | const gitignoreDestPath = path.join(folderPath, '.gitignore');
68 | const gitIgnoreContent = getGitIgnoreContent();
69 | fs.writeFileSync(gitignoreDestPath, gitIgnoreContent);
70 |
71 | console.log(
72 | chalk.green(`> Success to create the package.json and .gitignore files`),
73 | );
74 |
75 | // install the packages inside the folder
76 | const npmCorePackages = {
77 | react: '16.13.1',
78 | 'react-dom': '16.13.1',
79 | 'styled-components': '5.1.1',
80 | 'nexus-scripts': '', // always install the last version
81 | '@types/react': '16.9.42',
82 | '@types/react-dom': '16.9.8',
83 | '@types/styled-components': '5.1.1',
84 | '@hot-loader/react-dom': '16.13.0',
85 | };
86 | const apolloPackages = {
87 | 'react-apollo': '3.1.5',
88 | '@apollo/react-hooks': '3.1.5',
89 | 'apollo-client': '2.6.10',
90 | 'apollo-link': '1.2.14',
91 | 'apollo-cache-inmemory': '1.6.6',
92 | 'apollo-link-http': '1.5.17',
93 | 'graphql-tag': '2.10.3',
94 | graphql: '14.5.8',
95 | 'apollo-link-error': '1.1.13',
96 | };
97 |
98 | const coreNpmPackages = stringifyNpmPackages(
99 | withApollo
100 | ? {
101 | ...npmCorePackages,
102 | ...apolloPackages,
103 | }
104 | : npmCorePackages,
105 | );
106 | await installNpmPackages({
107 | packages: coreNpmPackages,
108 | path: folderPath,
109 | areDevDependencies: false,
110 | });
111 |
112 | // we need to install the dependencies of the eslint plugin
113 | const devPackages = {
114 | '@typescript-eslint/eslint-plugin': '^3.5.0',
115 | '@typescript-eslint/parser': '^3.5.0',
116 | 'confusing-browser-globals': '^1.0.9',
117 | eslint: '^6.7.1',
118 | 'eslint-config-airbnb': '^18.0.1',
119 | 'eslint-config-prettier': '^6.10.0',
120 | 'eslint-plugin-import': '^2.18.2',
121 | 'eslint-plugin-jsx-a11y': '^6.2.3',
122 | 'eslint-plugin-prettier': '^3.1.1',
123 | 'eslint-plugin-react': '^7.15.1',
124 | 'eslint-plugin-react-hooks': '^4.0.5',
125 | prettier: '^1.19.1',
126 | typescript: '^3.9.5',
127 | 'node-sass': '4.14.1',
128 | 'typescript-styled-plugin': '^0.15.0',
129 | };
130 | const devPackagesString = stringifyNpmPackages(devPackages);
131 |
132 | await installNpmPackages({
133 | packages: `eslint-config-webpack-nexus ${devPackagesString}`,
134 | path: folderPath,
135 | areDevDependencies: true,
136 | });
137 |
138 | // 4. Create the src/index.tsx and src/index.html files
139 | // ======================== index.html ========================= //
140 | const srcFolderPath = path.join(folderPath, 'src');
141 | fs.mkdirSync(srcFolderPath);
142 |
143 | // TODO: Replace all getTemplateThing with readFileSync to use real js files like templates
144 | const html = getHtmlTemplate({ projectName });
145 | const htmlPath = path.join(srcFolderPath, 'index.html');
146 | fs.writeFileSync(htmlPath, html);
147 |
148 | // ======================== react index.(js|tsx) ========================= //
149 | // TODO: Permit to change this from cli args
150 | const jsExtension = 'js';
151 | const jsPath = path.join(srcFolderPath, `index.${jsExtension}`);
152 |
153 | const extraImports = [withTailwindcss ? "import './tailwind.css';\n" : ''];
154 |
155 | let content = '';
156 | if (withApollo) {
157 | content = fs.readFileSync(
158 | path.resolve(__dirname, './templateFiles/react/apollo.js'),
159 | 'utf8',
160 | );
161 | } else {
162 | content = fs.readFileSync(
163 | path.resolve(__dirname, './templateFiles/react/default.js'),
164 | 'utf8',
165 | );
166 | }
167 | fs.writeFileSync(
168 | jsPath,
169 | `${content.trim().replace('[extraImports];', extraImports.join(''))}\n`,
170 | );
171 | console.log(
172 | chalk.green(
173 | `> Success to create the index.${jsExtension} and index.html files`,
174 | ),
175 | );
176 |
177 | // ======================== tailwind.css ================= //
178 | if (withTailwindcss) {
179 | const cssPath = path.join(srcFolderPath, `tailwind.css`);
180 | const cssTemplate = fs.readFileSync(
181 | path.resolve(__dirname, './templateFiles/tailwind.css'),
182 | 'utf8',
183 | );
184 | fs.writeFileSync(cssPath, `${cssTemplate.trim()}\n`);
185 | console.log(chalk.green(`> Success to configurate tailwind.`));
186 | }
187 |
188 | /**
189 | * 5. Copy rest of configuration files:
190 | * - .eslintrc.js
191 | * - .eslintignore
192 | */
193 | // ======================== .eslintrc.js ========================= //
194 | const eslint = getEslintTemplate();
195 | const eslintPath = path.join(folderPath, '.eslintrc.js');
196 | fs.writeFileSync(eslintPath, eslint);
197 |
198 | // ======================== .eslintignore ========================= //
199 | const eslintignore = `
200 | !.*.js
201 | !.*.ts
202 | !.*.tsx
203 | node_modules/
204 | coverage/
205 | dist/
206 | build/
207 | `;
208 | const eslintignorePath = path.join(folderPath, '.eslintignore');
209 | fs.writeFileSync(eslintignorePath, eslintignore);
210 | console.log(chalk.green(`> Success to create the eslint config files`));
211 |
212 | // ======================== tsconfig.json ========================= //
213 | const tsConfig = getTsConfigTemplate();
214 | const tsConfigPath = path.join(folderPath, 'tsconfig.json');
215 | fs.writeFileSync(tsConfigPath, tsConfig);
216 | console.log(chalk.green(`> Success to create the tsconfig.json file`));
217 |
218 | // ======================== Configure vscode (eslint + ts) ========================= //
219 | const vscodeConfigFolderPath = path.join(folderPath, '.vscode');
220 | fs.mkdirSync(vscodeConfigFolderPath);
221 | const vsConfig = getVsCodeConfig();
222 | const vsConfigPath = path.join(vscodeConfigFolderPath, 'settings.json');
223 | fs.writeFileSync(vsConfigPath, vsConfig);
224 | } catch (error) {
225 | console.error(error);
226 | process.exit(1);
227 | }
228 | }
229 |
230 | main()
231 | .then(() => {
232 | console.log("> Alright, it's done. Enjoy your app 😄");
233 | })
234 | .catch(console.error);
235 |
--------------------------------------------------------------------------------
/packages/webpack-nexus/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webpack-nexus",
3 | "version": "1.4.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@types/chalk": {
8 | "version": "2.2.0",
9 | "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-2.2.0.tgz",
10 | "integrity": "sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw==",
11 | "requires": {
12 | "chalk": "*"
13 | }
14 | },
15 | "ansi-escapes": {
16 | "version": "4.3.1",
17 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
18 | "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
19 | "requires": {
20 | "type-fest": "^0.11.0"
21 | }
22 | },
23 | "ansi-regex": {
24 | "version": "5.0.0",
25 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
26 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
27 | },
28 | "ansi-styles": {
29 | "version": "3.2.1",
30 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
31 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
32 | "requires": {
33 | "color-convert": "^1.9.0"
34 | }
35 | },
36 | "chalk": {
37 | "version": "2.4.2",
38 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
39 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
40 | "requires": {
41 | "ansi-styles": "^3.2.1",
42 | "escape-string-regexp": "^1.0.5",
43 | "supports-color": "^5.3.0"
44 | }
45 | },
46 | "chardet": {
47 | "version": "0.7.0",
48 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
49 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
50 | },
51 | "cli-cursor": {
52 | "version": "3.1.0",
53 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
54 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
55 | "requires": {
56 | "restore-cursor": "^3.1.0"
57 | }
58 | },
59 | "cli-spinners": {
60 | "version": "2.3.0",
61 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz",
62 | "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w=="
63 | },
64 | "cli-width": {
65 | "version": "2.2.1",
66 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
67 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
68 | },
69 | "clone": {
70 | "version": "1.0.4",
71 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
72 | "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
73 | },
74 | "color-convert": {
75 | "version": "1.9.3",
76 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
77 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
78 | "requires": {
79 | "color-name": "1.1.3"
80 | }
81 | },
82 | "color-name": {
83 | "version": "1.1.3",
84 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
85 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
86 | },
87 | "defaults": {
88 | "version": "1.0.3",
89 | "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
90 | "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
91 | "requires": {
92 | "clone": "^1.0.2"
93 | }
94 | },
95 | "emoji-regex": {
96 | "version": "8.0.0",
97 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
98 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
99 | },
100 | "escape-string-regexp": {
101 | "version": "1.0.5",
102 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
103 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
104 | },
105 | "external-editor": {
106 | "version": "3.1.0",
107 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
108 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
109 | "requires": {
110 | "chardet": "^0.7.0",
111 | "iconv-lite": "^0.4.24",
112 | "tmp": "^0.0.33"
113 | }
114 | },
115 | "figures": {
116 | "version": "3.2.0",
117 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
118 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
119 | "requires": {
120 | "escape-string-regexp": "^1.0.5"
121 | }
122 | },
123 | "has-flag": {
124 | "version": "3.0.0",
125 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
126 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
127 | },
128 | "iconv-lite": {
129 | "version": "0.4.24",
130 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
131 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
132 | "requires": {
133 | "safer-buffer": ">= 2.1.2 < 3"
134 | }
135 | },
136 | "inquirer": {
137 | "version": "7.0.0",
138 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz",
139 | "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==",
140 | "requires": {
141 | "ansi-escapes": "^4.2.1",
142 | "chalk": "^2.4.2",
143 | "cli-cursor": "^3.1.0",
144 | "cli-width": "^2.0.0",
145 | "external-editor": "^3.0.3",
146 | "figures": "^3.0.0",
147 | "lodash": "^4.17.15",
148 | "mute-stream": "0.0.8",
149 | "run-async": "^2.2.0",
150 | "rxjs": "^6.4.0",
151 | "string-width": "^4.1.0",
152 | "strip-ansi": "^5.1.0",
153 | "through": "^2.3.6"
154 | }
155 | },
156 | "is-fullwidth-code-point": {
157 | "version": "3.0.0",
158 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
159 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
160 | },
161 | "is-interactive": {
162 | "version": "1.0.0",
163 | "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
164 | "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="
165 | },
166 | "lodash": {
167 | "version": "4.17.15",
168 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
169 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
170 | },
171 | "log-symbols": {
172 | "version": "3.0.0",
173 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
174 | "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
175 | "requires": {
176 | "chalk": "^2.4.2"
177 | }
178 | },
179 | "mimic-fn": {
180 | "version": "2.1.0",
181 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
182 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
183 | },
184 | "minimist": {
185 | "version": "1.2.5",
186 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
187 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
188 | },
189 | "mute-stream": {
190 | "version": "0.0.8",
191 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
192 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
193 | },
194 | "onetime": {
195 | "version": "5.1.0",
196 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
197 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
198 | "requires": {
199 | "mimic-fn": "^2.1.0"
200 | }
201 | },
202 | "ora": {
203 | "version": "4.0.1",
204 | "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.1.tgz",
205 | "integrity": "sha512-yQv2q0GO8rqP2wzdOxpu0FxUmRg4z/Lw0m6uSpukPJXoOMaQzrIpl+STKHzjryFP5ExQC56+y8+yXPar2iezaw==",
206 | "requires": {
207 | "chalk": "^2.4.2",
208 | "cli-cursor": "^3.1.0",
209 | "cli-spinners": "^2.2.0",
210 | "is-interactive": "^1.0.0",
211 | "log-symbols": "^3.0.0",
212 | "strip-ansi": "^5.2.0",
213 | "wcwidth": "^1.0.1"
214 | }
215 | },
216 | "os-tmpdir": {
217 | "version": "1.0.2",
218 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
219 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
220 | },
221 | "restore-cursor": {
222 | "version": "3.1.0",
223 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
224 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
225 | "requires": {
226 | "onetime": "^5.1.0",
227 | "signal-exit": "^3.0.2"
228 | }
229 | },
230 | "run-async": {
231 | "version": "2.4.1",
232 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
233 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
234 | },
235 | "rxjs": {
236 | "version": "6.6.0",
237 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz",
238 | "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==",
239 | "requires": {
240 | "tslib": "^1.9.0"
241 | }
242 | },
243 | "safer-buffer": {
244 | "version": "2.1.2",
245 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
246 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
247 | },
248 | "signal-exit": {
249 | "version": "3.0.3",
250 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
251 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
252 | },
253 | "string-width": {
254 | "version": "4.2.0",
255 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
256 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
257 | "requires": {
258 | "emoji-regex": "^8.0.0",
259 | "is-fullwidth-code-point": "^3.0.0",
260 | "strip-ansi": "^6.0.0"
261 | },
262 | "dependencies": {
263 | "strip-ansi": {
264 | "version": "6.0.0",
265 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
266 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
267 | "requires": {
268 | "ansi-regex": "^5.0.0"
269 | }
270 | }
271 | }
272 | },
273 | "strip-ansi": {
274 | "version": "5.2.0",
275 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
276 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
277 | "requires": {
278 | "ansi-regex": "^4.1.0"
279 | },
280 | "dependencies": {
281 | "ansi-regex": {
282 | "version": "4.1.0",
283 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
284 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
285 | }
286 | }
287 | },
288 | "supports-color": {
289 | "version": "5.5.0",
290 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
291 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
292 | "requires": {
293 | "has-flag": "^3.0.0"
294 | }
295 | },
296 | "through": {
297 | "version": "2.3.8",
298 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
299 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
300 | },
301 | "tmp": {
302 | "version": "0.0.33",
303 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
304 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
305 | "requires": {
306 | "os-tmpdir": "~1.0.2"
307 | }
308 | },
309 | "tslib": {
310 | "version": "1.13.0",
311 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
312 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
313 | },
314 | "type-fest": {
315 | "version": "0.11.0",
316 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
317 | "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ=="
318 | },
319 | "wcwidth": {
320 | "version": "1.0.1",
321 | "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
322 | "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
323 | "requires": {
324 | "defaults": "^1.0.3"
325 | }
326 | }
327 | }
328 | }
329 |
--------------------------------------------------------------------------------
/packages/babel-preset-webpack-nexus/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "babel-preset-webpack-nexus",
3 | "version": "1.4.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.10.4",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
10 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
11 | "requires": {
12 | "@babel/highlight": "^7.10.4"
13 | }
14 | },
15 | "@babel/compat-data": {
16 | "version": "7.10.4",
17 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz",
18 | "integrity": "sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==",
19 | "requires": {
20 | "browserslist": "^4.12.0",
21 | "invariant": "^2.2.4",
22 | "semver": "^5.5.0"
23 | }
24 | },
25 | "@babel/core": {
26 | "version": "7.10.4",
27 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz",
28 | "integrity": "sha512-3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==",
29 | "requires": {
30 | "@babel/code-frame": "^7.10.4",
31 | "@babel/generator": "^7.10.4",
32 | "@babel/helper-module-transforms": "^7.10.4",
33 | "@babel/helpers": "^7.10.4",
34 | "@babel/parser": "^7.10.4",
35 | "@babel/template": "^7.10.4",
36 | "@babel/traverse": "^7.10.4",
37 | "@babel/types": "^7.10.4",
38 | "convert-source-map": "^1.7.0",
39 | "debug": "^4.1.0",
40 | "gensync": "^1.0.0-beta.1",
41 | "json5": "^2.1.2",
42 | "lodash": "^4.17.13",
43 | "resolve": "^1.3.2",
44 | "semver": "^5.4.1",
45 | "source-map": "^0.5.0"
46 | }
47 | },
48 | "@babel/generator": {
49 | "version": "7.10.4",
50 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz",
51 | "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==",
52 | "requires": {
53 | "@babel/types": "^7.10.4",
54 | "jsesc": "^2.5.1",
55 | "lodash": "^4.17.13",
56 | "source-map": "^0.5.0"
57 | }
58 | },
59 | "@babel/helper-annotate-as-pure": {
60 | "version": "7.10.4",
61 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
62 | "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
63 | "requires": {
64 | "@babel/types": "^7.10.4"
65 | }
66 | },
67 | "@babel/helper-builder-binary-assignment-operator-visitor": {
68 | "version": "7.10.4",
69 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
70 | "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
71 | "requires": {
72 | "@babel/helper-explode-assignable-expression": "^7.10.4",
73 | "@babel/types": "^7.10.4"
74 | }
75 | },
76 | "@babel/helper-builder-react-jsx": {
77 | "version": "7.10.4",
78 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
79 | "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
80 | "requires": {
81 | "@babel/helper-annotate-as-pure": "^7.10.4",
82 | "@babel/types": "^7.10.4"
83 | }
84 | },
85 | "@babel/helper-builder-react-jsx-experimental": {
86 | "version": "7.10.4",
87 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.4.tgz",
88 | "integrity": "sha512-LyacH/kgQPgLAuaWrvvq1+E7f5bLyT8jXCh7nM67sRsy2cpIGfgWJ+FCnAKQXfY+F0tXUaN6FqLkp4JiCzdK8Q==",
89 | "requires": {
90 | "@babel/helper-annotate-as-pure": "^7.10.4",
91 | "@babel/helper-module-imports": "^7.10.4",
92 | "@babel/types": "^7.10.4"
93 | }
94 | },
95 | "@babel/helper-compilation-targets": {
96 | "version": "7.10.4",
97 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz",
98 | "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==",
99 | "requires": {
100 | "@babel/compat-data": "^7.10.4",
101 | "browserslist": "^4.12.0",
102 | "invariant": "^2.2.4",
103 | "levenary": "^1.1.1",
104 | "semver": "^5.5.0"
105 | }
106 | },
107 | "@babel/helper-create-class-features-plugin": {
108 | "version": "7.10.4",
109 | "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz",
110 | "integrity": "sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==",
111 | "requires": {
112 | "@babel/helper-function-name": "^7.10.4",
113 | "@babel/helper-member-expression-to-functions": "^7.10.4",
114 | "@babel/helper-optimise-call-expression": "^7.10.4",
115 | "@babel/helper-plugin-utils": "^7.10.4",
116 | "@babel/helper-replace-supers": "^7.10.4",
117 | "@babel/helper-split-export-declaration": "^7.10.4"
118 | }
119 | },
120 | "@babel/helper-create-regexp-features-plugin": {
121 | "version": "7.10.4",
122 | "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz",
123 | "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==",
124 | "requires": {
125 | "@babel/helper-annotate-as-pure": "^7.10.4",
126 | "@babel/helper-regex": "^7.10.4",
127 | "regexpu-core": "^4.7.0"
128 | }
129 | },
130 | "@babel/helper-define-map": {
131 | "version": "7.10.4",
132 | "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz",
133 | "integrity": "sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==",
134 | "requires": {
135 | "@babel/helper-function-name": "^7.10.4",
136 | "@babel/types": "^7.10.4",
137 | "lodash": "^4.17.13"
138 | }
139 | },
140 | "@babel/helper-explode-assignable-expression": {
141 | "version": "7.10.4",
142 | "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz",
143 | "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==",
144 | "requires": {
145 | "@babel/traverse": "^7.10.4",
146 | "@babel/types": "^7.10.4"
147 | }
148 | },
149 | "@babel/helper-function-name": {
150 | "version": "7.10.4",
151 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
152 | "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
153 | "requires": {
154 | "@babel/helper-get-function-arity": "^7.10.4",
155 | "@babel/template": "^7.10.4",
156 | "@babel/types": "^7.10.4"
157 | }
158 | },
159 | "@babel/helper-get-function-arity": {
160 | "version": "7.10.4",
161 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
162 | "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
163 | "requires": {
164 | "@babel/types": "^7.10.4"
165 | }
166 | },
167 | "@babel/helper-hoist-variables": {
168 | "version": "7.10.4",
169 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz",
170 | "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==",
171 | "requires": {
172 | "@babel/types": "^7.10.4"
173 | }
174 | },
175 | "@babel/helper-member-expression-to-functions": {
176 | "version": "7.10.4",
177 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz",
178 | "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==",
179 | "requires": {
180 | "@babel/types": "^7.10.4"
181 | }
182 | },
183 | "@babel/helper-module-imports": {
184 | "version": "7.10.4",
185 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
186 | "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
187 | "requires": {
188 | "@babel/types": "^7.10.4"
189 | }
190 | },
191 | "@babel/helper-module-transforms": {
192 | "version": "7.10.4",
193 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz",
194 | "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==",
195 | "requires": {
196 | "@babel/helper-module-imports": "^7.10.4",
197 | "@babel/helper-replace-supers": "^7.10.4",
198 | "@babel/helper-simple-access": "^7.10.4",
199 | "@babel/helper-split-export-declaration": "^7.10.4",
200 | "@babel/template": "^7.10.4",
201 | "@babel/types": "^7.10.4",
202 | "lodash": "^4.17.13"
203 | }
204 | },
205 | "@babel/helper-optimise-call-expression": {
206 | "version": "7.10.4",
207 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
208 | "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
209 | "requires": {
210 | "@babel/types": "^7.10.4"
211 | }
212 | },
213 | "@babel/helper-plugin-utils": {
214 | "version": "7.10.4",
215 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
216 | "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
217 | },
218 | "@babel/helper-regex": {
219 | "version": "7.10.4",
220 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz",
221 | "integrity": "sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==",
222 | "requires": {
223 | "lodash": "^4.17.13"
224 | }
225 | },
226 | "@babel/helper-remap-async-to-generator": {
227 | "version": "7.10.4",
228 | "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz",
229 | "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==",
230 | "requires": {
231 | "@babel/helper-annotate-as-pure": "^7.10.4",
232 | "@babel/helper-wrap-function": "^7.10.4",
233 | "@babel/template": "^7.10.4",
234 | "@babel/traverse": "^7.10.4",
235 | "@babel/types": "^7.10.4"
236 | }
237 | },
238 | "@babel/helper-replace-supers": {
239 | "version": "7.10.4",
240 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
241 | "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
242 | "requires": {
243 | "@babel/helper-member-expression-to-functions": "^7.10.4",
244 | "@babel/helper-optimise-call-expression": "^7.10.4",
245 | "@babel/traverse": "^7.10.4",
246 | "@babel/types": "^7.10.4"
247 | }
248 | },
249 | "@babel/helper-simple-access": {
250 | "version": "7.10.4",
251 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
252 | "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
253 | "requires": {
254 | "@babel/template": "^7.10.4",
255 | "@babel/types": "^7.10.4"
256 | }
257 | },
258 | "@babel/helper-split-export-declaration": {
259 | "version": "7.10.4",
260 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
261 | "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
262 | "requires": {
263 | "@babel/types": "^7.10.4"
264 | }
265 | },
266 | "@babel/helper-validator-identifier": {
267 | "version": "7.10.4",
268 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
269 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
270 | },
271 | "@babel/helper-wrap-function": {
272 | "version": "7.10.4",
273 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz",
274 | "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==",
275 | "requires": {
276 | "@babel/helper-function-name": "^7.10.4",
277 | "@babel/template": "^7.10.4",
278 | "@babel/traverse": "^7.10.4",
279 | "@babel/types": "^7.10.4"
280 | }
281 | },
282 | "@babel/helpers": {
283 | "version": "7.10.4",
284 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
285 | "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
286 | "requires": {
287 | "@babel/template": "^7.10.4",
288 | "@babel/traverse": "^7.10.4",
289 | "@babel/types": "^7.10.4"
290 | }
291 | },
292 | "@babel/highlight": {
293 | "version": "7.10.4",
294 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
295 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
296 | "requires": {
297 | "@babel/helper-validator-identifier": "^7.10.4",
298 | "chalk": "^2.0.0",
299 | "js-tokens": "^4.0.0"
300 | }
301 | },
302 | "@babel/parser": {
303 | "version": "7.10.4",
304 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz",
305 | "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA=="
306 | },
307 | "@babel/plugin-proposal-async-generator-functions": {
308 | "version": "7.10.4",
309 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz",
310 | "integrity": "sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==",
311 | "requires": {
312 | "@babel/helper-plugin-utils": "^7.10.4",
313 | "@babel/helper-remap-async-to-generator": "^7.10.4",
314 | "@babel/plugin-syntax-async-generators": "^7.8.0"
315 | }
316 | },
317 | "@babel/plugin-proposal-class-properties": {
318 | "version": "7.10.4",
319 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz",
320 | "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==",
321 | "requires": {
322 | "@babel/helper-create-class-features-plugin": "^7.10.4",
323 | "@babel/helper-plugin-utils": "^7.10.4"
324 | }
325 | },
326 | "@babel/plugin-proposal-decorators": {
327 | "version": "7.10.4",
328 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.4.tgz",
329 | "integrity": "sha512-JHTWjQngOPv+ZQQqOGv2x6sCCr4IYWy7S1/VH6BE9ZfkoLrdQ2GpEP3tfb5M++G9PwvqjhY8VC/C3tXm+/eHvA==",
330 | "requires": {
331 | "@babel/helper-create-class-features-plugin": "^7.10.4",
332 | "@babel/helper-plugin-utils": "^7.10.4",
333 | "@babel/plugin-syntax-decorators": "^7.10.4"
334 | }
335 | },
336 | "@babel/plugin-proposal-dynamic-import": {
337 | "version": "7.10.4",
338 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz",
339 | "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==",
340 | "requires": {
341 | "@babel/helper-plugin-utils": "^7.10.4",
342 | "@babel/plugin-syntax-dynamic-import": "^7.8.0"
343 | },
344 | "dependencies": {
345 | "@babel/plugin-syntax-dynamic-import": {
346 | "version": "7.8.3",
347 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
348 | "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
349 | "requires": {
350 | "@babel/helper-plugin-utils": "^7.8.0"
351 | }
352 | }
353 | }
354 | },
355 | "@babel/plugin-proposal-export-default-from": {
356 | "version": "7.2.0",
357 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.2.0.tgz",
358 | "integrity": "sha512-NVfNe7F6nsasG1FnvcFxh2FN0l04ZNe75qTOAVOILWPam0tw9a63RtT/Dab8dPjedZa4fTQaQ83yMMywF9OSug==",
359 | "requires": {
360 | "@babel/helper-plugin-utils": "^7.0.0",
361 | "@babel/plugin-syntax-export-default-from": "^7.2.0"
362 | }
363 | },
364 | "@babel/plugin-proposal-json-strings": {
365 | "version": "7.10.4",
366 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz",
367 | "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==",
368 | "requires": {
369 | "@babel/helper-plugin-utils": "^7.10.4",
370 | "@babel/plugin-syntax-json-strings": "^7.8.0"
371 | }
372 | },
373 | "@babel/plugin-proposal-nullish-coalescing-operator": {
374 | "version": "7.10.4",
375 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz",
376 | "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==",
377 | "requires": {
378 | "@babel/helper-plugin-utils": "^7.10.4",
379 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
380 | }
381 | },
382 | "@babel/plugin-proposal-numeric-separator": {
383 | "version": "7.10.4",
384 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz",
385 | "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==",
386 | "requires": {
387 | "@babel/helper-plugin-utils": "^7.10.4",
388 | "@babel/plugin-syntax-numeric-separator": "^7.10.4"
389 | }
390 | },
391 | "@babel/plugin-proposal-object-rest-spread": {
392 | "version": "7.10.4",
393 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz",
394 | "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==",
395 | "requires": {
396 | "@babel/helper-plugin-utils": "^7.10.4",
397 | "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
398 | "@babel/plugin-transform-parameters": "^7.10.4"
399 | }
400 | },
401 | "@babel/plugin-proposal-optional-catch-binding": {
402 | "version": "7.10.4",
403 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz",
404 | "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==",
405 | "requires": {
406 | "@babel/helper-plugin-utils": "^7.10.4",
407 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
408 | }
409 | },
410 | "@babel/plugin-proposal-optional-chaining": {
411 | "version": "7.10.4",
412 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz",
413 | "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==",
414 | "requires": {
415 | "@babel/helper-plugin-utils": "^7.10.4",
416 | "@babel/plugin-syntax-optional-chaining": "^7.8.0"
417 | }
418 | },
419 | "@babel/plugin-proposal-private-methods": {
420 | "version": "7.10.4",
421 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz",
422 | "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==",
423 | "requires": {
424 | "@babel/helper-create-class-features-plugin": "^7.10.4",
425 | "@babel/helper-plugin-utils": "^7.10.4"
426 | }
427 | },
428 | "@babel/plugin-proposal-unicode-property-regex": {
429 | "version": "7.10.4",
430 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz",
431 | "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==",
432 | "requires": {
433 | "@babel/helper-create-regexp-features-plugin": "^7.10.4",
434 | "@babel/helper-plugin-utils": "^7.10.4"
435 | }
436 | },
437 | "@babel/plugin-syntax-async-generators": {
438 | "version": "7.8.4",
439 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
440 | "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
441 | "requires": {
442 | "@babel/helper-plugin-utils": "^7.8.0"
443 | }
444 | },
445 | "@babel/plugin-syntax-class-properties": {
446 | "version": "7.10.4",
447 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
448 | "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
449 | "requires": {
450 | "@babel/helper-plugin-utils": "^7.10.4"
451 | }
452 | },
453 | "@babel/plugin-syntax-decorators": {
454 | "version": "7.10.4",
455 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz",
456 | "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==",
457 | "requires": {
458 | "@babel/helper-plugin-utils": "^7.10.4"
459 | }
460 | },
461 | "@babel/plugin-syntax-dynamic-import": {
462 | "version": "7.2.0",
463 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
464 | "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
465 | "requires": {
466 | "@babel/helper-plugin-utils": "^7.0.0"
467 | }
468 | },
469 | "@babel/plugin-syntax-export-default-from": {
470 | "version": "7.10.4",
471 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz",
472 | "integrity": "sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA==",
473 | "requires": {
474 | "@babel/helper-plugin-utils": "^7.10.4"
475 | }
476 | },
477 | "@babel/plugin-syntax-json-strings": {
478 | "version": "7.8.3",
479 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
480 | "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
481 | "requires": {
482 | "@babel/helper-plugin-utils": "^7.8.0"
483 | }
484 | },
485 | "@babel/plugin-syntax-jsx": {
486 | "version": "7.10.4",
487 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz",
488 | "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==",
489 | "requires": {
490 | "@babel/helper-plugin-utils": "^7.10.4"
491 | }
492 | },
493 | "@babel/plugin-syntax-nullish-coalescing-operator": {
494 | "version": "7.8.3",
495 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
496 | "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
497 | "requires": {
498 | "@babel/helper-plugin-utils": "^7.8.0"
499 | }
500 | },
501 | "@babel/plugin-syntax-numeric-separator": {
502 | "version": "7.10.4",
503 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
504 | "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
505 | "requires": {
506 | "@babel/helper-plugin-utils": "^7.10.4"
507 | }
508 | },
509 | "@babel/plugin-syntax-object-rest-spread": {
510 | "version": "7.8.3",
511 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
512 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
513 | "requires": {
514 | "@babel/helper-plugin-utils": "^7.8.0"
515 | }
516 | },
517 | "@babel/plugin-syntax-optional-catch-binding": {
518 | "version": "7.8.3",
519 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
520 | "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
521 | "requires": {
522 | "@babel/helper-plugin-utils": "^7.8.0"
523 | }
524 | },
525 | "@babel/plugin-syntax-optional-chaining": {
526 | "version": "7.8.3",
527 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
528 | "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
529 | "requires": {
530 | "@babel/helper-plugin-utils": "^7.8.0"
531 | }
532 | },
533 | "@babel/plugin-syntax-top-level-await": {
534 | "version": "7.10.4",
535 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz",
536 | "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==",
537 | "requires": {
538 | "@babel/helper-plugin-utils": "^7.10.4"
539 | }
540 | },
541 | "@babel/plugin-syntax-typescript": {
542 | "version": "7.10.4",
543 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz",
544 | "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==",
545 | "requires": {
546 | "@babel/helper-plugin-utils": "^7.10.4"
547 | }
548 | },
549 | "@babel/plugin-transform-arrow-functions": {
550 | "version": "7.10.4",
551 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz",
552 | "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==",
553 | "requires": {
554 | "@babel/helper-plugin-utils": "^7.10.4"
555 | }
556 | },
557 | "@babel/plugin-transform-async-to-generator": {
558 | "version": "7.10.4",
559 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz",
560 | "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==",
561 | "requires": {
562 | "@babel/helper-module-imports": "^7.10.4",
563 | "@babel/helper-plugin-utils": "^7.10.4",
564 | "@babel/helper-remap-async-to-generator": "^7.10.4"
565 | }
566 | },
567 | "@babel/plugin-transform-block-scoped-functions": {
568 | "version": "7.10.4",
569 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz",
570 | "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==",
571 | "requires": {
572 | "@babel/helper-plugin-utils": "^7.10.4"
573 | }
574 | },
575 | "@babel/plugin-transform-block-scoping": {
576 | "version": "7.10.4",
577 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz",
578 | "integrity": "sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==",
579 | "requires": {
580 | "@babel/helper-plugin-utils": "^7.10.4",
581 | "lodash": "^4.17.13"
582 | }
583 | },
584 | "@babel/plugin-transform-classes": {
585 | "version": "7.10.4",
586 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz",
587 | "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==",
588 | "requires": {
589 | "@babel/helper-annotate-as-pure": "^7.10.4",
590 | "@babel/helper-define-map": "^7.10.4",
591 | "@babel/helper-function-name": "^7.10.4",
592 | "@babel/helper-optimise-call-expression": "^7.10.4",
593 | "@babel/helper-plugin-utils": "^7.10.4",
594 | "@babel/helper-replace-supers": "^7.10.4",
595 | "@babel/helper-split-export-declaration": "^7.10.4",
596 | "globals": "^11.1.0"
597 | }
598 | },
599 | "@babel/plugin-transform-computed-properties": {
600 | "version": "7.10.4",
601 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz",
602 | "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==",
603 | "requires": {
604 | "@babel/helper-plugin-utils": "^7.10.4"
605 | }
606 | },
607 | "@babel/plugin-transform-destructuring": {
608 | "version": "7.10.4",
609 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz",
610 | "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==",
611 | "requires": {
612 | "@babel/helper-plugin-utils": "^7.10.4"
613 | }
614 | },
615 | "@babel/plugin-transform-dotall-regex": {
616 | "version": "7.10.4",
617 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz",
618 | "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==",
619 | "requires": {
620 | "@babel/helper-create-regexp-features-plugin": "^7.10.4",
621 | "@babel/helper-plugin-utils": "^7.10.4"
622 | }
623 | },
624 | "@babel/plugin-transform-duplicate-keys": {
625 | "version": "7.10.4",
626 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz",
627 | "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==",
628 | "requires": {
629 | "@babel/helper-plugin-utils": "^7.10.4"
630 | }
631 | },
632 | "@babel/plugin-transform-exponentiation-operator": {
633 | "version": "7.10.4",
634 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz",
635 | "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==",
636 | "requires": {
637 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
638 | "@babel/helper-plugin-utils": "^7.10.4"
639 | }
640 | },
641 | "@babel/plugin-transform-for-of": {
642 | "version": "7.10.4",
643 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
644 | "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==",
645 | "requires": {
646 | "@babel/helper-plugin-utils": "^7.10.4"
647 | }
648 | },
649 | "@babel/plugin-transform-function-name": {
650 | "version": "7.10.4",
651 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz",
652 | "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==",
653 | "requires": {
654 | "@babel/helper-function-name": "^7.10.4",
655 | "@babel/helper-plugin-utils": "^7.10.4"
656 | }
657 | },
658 | "@babel/plugin-transform-literals": {
659 | "version": "7.10.4",
660 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz",
661 | "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==",
662 | "requires": {
663 | "@babel/helper-plugin-utils": "^7.10.4"
664 | }
665 | },
666 | "@babel/plugin-transform-member-expression-literals": {
667 | "version": "7.10.4",
668 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz",
669 | "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==",
670 | "requires": {
671 | "@babel/helper-plugin-utils": "^7.10.4"
672 | }
673 | },
674 | "@babel/plugin-transform-modules-amd": {
675 | "version": "7.10.4",
676 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz",
677 | "integrity": "sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==",
678 | "requires": {
679 | "@babel/helper-module-transforms": "^7.10.4",
680 | "@babel/helper-plugin-utils": "^7.10.4",
681 | "babel-plugin-dynamic-import-node": "^2.3.3"
682 | },
683 | "dependencies": {
684 | "babel-plugin-dynamic-import-node": {
685 | "version": "2.3.3",
686 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
687 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
688 | "requires": {
689 | "object.assign": "^4.1.0"
690 | }
691 | }
692 | }
693 | },
694 | "@babel/plugin-transform-modules-commonjs": {
695 | "version": "7.10.4",
696 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz",
697 | "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==",
698 | "requires": {
699 | "@babel/helper-module-transforms": "^7.10.4",
700 | "@babel/helper-plugin-utils": "^7.10.4",
701 | "@babel/helper-simple-access": "^7.10.4",
702 | "babel-plugin-dynamic-import-node": "^2.3.3"
703 | },
704 | "dependencies": {
705 | "babel-plugin-dynamic-import-node": {
706 | "version": "2.3.3",
707 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
708 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
709 | "requires": {
710 | "object.assign": "^4.1.0"
711 | }
712 | }
713 | }
714 | },
715 | "@babel/plugin-transform-modules-systemjs": {
716 | "version": "7.10.4",
717 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz",
718 | "integrity": "sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==",
719 | "requires": {
720 | "@babel/helper-hoist-variables": "^7.10.4",
721 | "@babel/helper-module-transforms": "^7.10.4",
722 | "@babel/helper-plugin-utils": "^7.10.4",
723 | "babel-plugin-dynamic-import-node": "^2.3.3"
724 | },
725 | "dependencies": {
726 | "babel-plugin-dynamic-import-node": {
727 | "version": "2.3.3",
728 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
729 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
730 | "requires": {
731 | "object.assign": "^4.1.0"
732 | }
733 | }
734 | }
735 | },
736 | "@babel/plugin-transform-modules-umd": {
737 | "version": "7.10.4",
738 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz",
739 | "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==",
740 | "requires": {
741 | "@babel/helper-module-transforms": "^7.10.4",
742 | "@babel/helper-plugin-utils": "^7.10.4"
743 | }
744 | },
745 | "@babel/plugin-transform-named-capturing-groups-regex": {
746 | "version": "7.10.4",
747 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz",
748 | "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==",
749 | "requires": {
750 | "@babel/helper-create-regexp-features-plugin": "^7.10.4"
751 | }
752 | },
753 | "@babel/plugin-transform-new-target": {
754 | "version": "7.10.4",
755 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz",
756 | "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==",
757 | "requires": {
758 | "@babel/helper-plugin-utils": "^7.10.4"
759 | }
760 | },
761 | "@babel/plugin-transform-object-super": {
762 | "version": "7.10.4",
763 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz",
764 | "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==",
765 | "requires": {
766 | "@babel/helper-plugin-utils": "^7.10.4",
767 | "@babel/helper-replace-supers": "^7.10.4"
768 | }
769 | },
770 | "@babel/plugin-transform-parameters": {
771 | "version": "7.10.4",
772 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz",
773 | "integrity": "sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==",
774 | "requires": {
775 | "@babel/helper-get-function-arity": "^7.10.4",
776 | "@babel/helper-plugin-utils": "^7.10.4"
777 | }
778 | },
779 | "@babel/plugin-transform-property-literals": {
780 | "version": "7.10.4",
781 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz",
782 | "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==",
783 | "requires": {
784 | "@babel/helper-plugin-utils": "^7.10.4"
785 | }
786 | },
787 | "@babel/plugin-transform-react-constant-elements": {
788 | "version": "7.2.0",
789 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz",
790 | "integrity": "sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ==",
791 | "requires": {
792 | "@babel/helper-annotate-as-pure": "^7.0.0",
793 | "@babel/helper-plugin-utils": "^7.0.0"
794 | }
795 | },
796 | "@babel/plugin-transform-react-display-name": {
797 | "version": "7.10.4",
798 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz",
799 | "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==",
800 | "requires": {
801 | "@babel/helper-plugin-utils": "^7.10.4"
802 | }
803 | },
804 | "@babel/plugin-transform-react-inline-elements": {
805 | "version": "7.2.0",
806 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.2.0.tgz",
807 | "integrity": "sha512-OAflI+josEl8xoAzZYpFnN+C4e9wvxDecExTtvDsteAcChIZtsH/D2kMNcJnrrzbFzCroGajCTr9tAB7K0KsiQ==",
808 | "requires": {
809 | "@babel/helper-builder-react-jsx": "^7.0.0",
810 | "@babel/helper-plugin-utils": "^7.0.0"
811 | }
812 | },
813 | "@babel/plugin-transform-react-jsx": {
814 | "version": "7.10.4",
815 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz",
816 | "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==",
817 | "requires": {
818 | "@babel/helper-builder-react-jsx": "^7.10.4",
819 | "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
820 | "@babel/helper-plugin-utils": "^7.10.4",
821 | "@babel/plugin-syntax-jsx": "^7.10.4"
822 | }
823 | },
824 | "@babel/plugin-transform-react-jsx-development": {
825 | "version": "7.10.4",
826 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz",
827 | "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==",
828 | "requires": {
829 | "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
830 | "@babel/helper-plugin-utils": "^7.10.4",
831 | "@babel/plugin-syntax-jsx": "^7.10.4"
832 | }
833 | },
834 | "@babel/plugin-transform-react-jsx-self": {
835 | "version": "7.10.4",
836 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz",
837 | "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==",
838 | "requires": {
839 | "@babel/helper-plugin-utils": "^7.10.4",
840 | "@babel/plugin-syntax-jsx": "^7.10.4"
841 | }
842 | },
843 | "@babel/plugin-transform-react-jsx-source": {
844 | "version": "7.10.4",
845 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.4.tgz",
846 | "integrity": "sha512-FTK3eQFrPv2aveerUSazFmGygqIdTtvskG50SnGnbEUnRPcGx2ylBhdFIzoVS1ty44hEgcPoCAyw5r3VDEq+Ug==",
847 | "requires": {
848 | "@babel/helper-plugin-utils": "^7.10.4",
849 | "@babel/plugin-syntax-jsx": "^7.10.4"
850 | }
851 | },
852 | "@babel/plugin-transform-react-pure-annotations": {
853 | "version": "7.10.4",
854 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz",
855 | "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==",
856 | "requires": {
857 | "@babel/helper-annotate-as-pure": "^7.10.4",
858 | "@babel/helper-plugin-utils": "^7.10.4"
859 | }
860 | },
861 | "@babel/plugin-transform-regenerator": {
862 | "version": "7.10.4",
863 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz",
864 | "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==",
865 | "requires": {
866 | "regenerator-transform": "^0.14.2"
867 | }
868 | },
869 | "@babel/plugin-transform-reserved-words": {
870 | "version": "7.10.4",
871 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz",
872 | "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==",
873 | "requires": {
874 | "@babel/helper-plugin-utils": "^7.10.4"
875 | }
876 | },
877 | "@babel/plugin-transform-shorthand-properties": {
878 | "version": "7.10.4",
879 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz",
880 | "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==",
881 | "requires": {
882 | "@babel/helper-plugin-utils": "^7.10.4"
883 | }
884 | },
885 | "@babel/plugin-transform-spread": {
886 | "version": "7.10.4",
887 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz",
888 | "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==",
889 | "requires": {
890 | "@babel/helper-plugin-utils": "^7.10.4"
891 | }
892 | },
893 | "@babel/plugin-transform-sticky-regex": {
894 | "version": "7.10.4",
895 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz",
896 | "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==",
897 | "requires": {
898 | "@babel/helper-plugin-utils": "^7.10.4",
899 | "@babel/helper-regex": "^7.10.4"
900 | }
901 | },
902 | "@babel/plugin-transform-template-literals": {
903 | "version": "7.10.4",
904 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz",
905 | "integrity": "sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==",
906 | "requires": {
907 | "@babel/helper-annotate-as-pure": "^7.10.4",
908 | "@babel/helper-plugin-utils": "^7.10.4"
909 | }
910 | },
911 | "@babel/plugin-transform-typeof-symbol": {
912 | "version": "7.10.4",
913 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz",
914 | "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==",
915 | "requires": {
916 | "@babel/helper-plugin-utils": "^7.10.4"
917 | }
918 | },
919 | "@babel/plugin-transform-typescript": {
920 | "version": "7.10.4",
921 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.4.tgz",
922 | "integrity": "sha512-3WpXIKDJl/MHoAN0fNkSr7iHdUMHZoppXjf2HJ9/ed5Xht5wNIsXllJXdityKOxeA3Z8heYRb1D3p2H5rfCdPw==",
923 | "requires": {
924 | "@babel/helper-create-class-features-plugin": "^7.10.4",
925 | "@babel/helper-plugin-utils": "^7.10.4",
926 | "@babel/plugin-syntax-typescript": "^7.10.4"
927 | }
928 | },
929 | "@babel/plugin-transform-unicode-escapes": {
930 | "version": "7.10.4",
931 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz",
932 | "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==",
933 | "requires": {
934 | "@babel/helper-plugin-utils": "^7.10.4"
935 | }
936 | },
937 | "@babel/plugin-transform-unicode-regex": {
938 | "version": "7.10.4",
939 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz",
940 | "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==",
941 | "requires": {
942 | "@babel/helper-create-regexp-features-plugin": "^7.10.4",
943 | "@babel/helper-plugin-utils": "^7.10.4"
944 | }
945 | },
946 | "@babel/preset-env": {
947 | "version": "7.10.4",
948 | "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz",
949 | "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==",
950 | "requires": {
951 | "@babel/compat-data": "^7.10.4",
952 | "@babel/helper-compilation-targets": "^7.10.4",
953 | "@babel/helper-module-imports": "^7.10.4",
954 | "@babel/helper-plugin-utils": "^7.10.4",
955 | "@babel/plugin-proposal-async-generator-functions": "^7.10.4",
956 | "@babel/plugin-proposal-class-properties": "^7.10.4",
957 | "@babel/plugin-proposal-dynamic-import": "^7.10.4",
958 | "@babel/plugin-proposal-json-strings": "^7.10.4",
959 | "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
960 | "@babel/plugin-proposal-numeric-separator": "^7.10.4",
961 | "@babel/plugin-proposal-object-rest-spread": "^7.10.4",
962 | "@babel/plugin-proposal-optional-catch-binding": "^7.10.4",
963 | "@babel/plugin-proposal-optional-chaining": "^7.10.4",
964 | "@babel/plugin-proposal-private-methods": "^7.10.4",
965 | "@babel/plugin-proposal-unicode-property-regex": "^7.10.4",
966 | "@babel/plugin-syntax-async-generators": "^7.8.0",
967 | "@babel/plugin-syntax-class-properties": "^7.10.4",
968 | "@babel/plugin-syntax-dynamic-import": "^7.8.0",
969 | "@babel/plugin-syntax-json-strings": "^7.8.0",
970 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
971 | "@babel/plugin-syntax-numeric-separator": "^7.10.4",
972 | "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
973 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
974 | "@babel/plugin-syntax-optional-chaining": "^7.8.0",
975 | "@babel/plugin-syntax-top-level-await": "^7.10.4",
976 | "@babel/plugin-transform-arrow-functions": "^7.10.4",
977 | "@babel/plugin-transform-async-to-generator": "^7.10.4",
978 | "@babel/plugin-transform-block-scoped-functions": "^7.10.4",
979 | "@babel/plugin-transform-block-scoping": "^7.10.4",
980 | "@babel/plugin-transform-classes": "^7.10.4",
981 | "@babel/plugin-transform-computed-properties": "^7.10.4",
982 | "@babel/plugin-transform-destructuring": "^7.10.4",
983 | "@babel/plugin-transform-dotall-regex": "^7.10.4",
984 | "@babel/plugin-transform-duplicate-keys": "^7.10.4",
985 | "@babel/plugin-transform-exponentiation-operator": "^7.10.4",
986 | "@babel/plugin-transform-for-of": "^7.10.4",
987 | "@babel/plugin-transform-function-name": "^7.10.4",
988 | "@babel/plugin-transform-literals": "^7.10.4",
989 | "@babel/plugin-transform-member-expression-literals": "^7.10.4",
990 | "@babel/plugin-transform-modules-amd": "^7.10.4",
991 | "@babel/plugin-transform-modules-commonjs": "^7.10.4",
992 | "@babel/plugin-transform-modules-systemjs": "^7.10.4",
993 | "@babel/plugin-transform-modules-umd": "^7.10.4",
994 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4",
995 | "@babel/plugin-transform-new-target": "^7.10.4",
996 | "@babel/plugin-transform-object-super": "^7.10.4",
997 | "@babel/plugin-transform-parameters": "^7.10.4",
998 | "@babel/plugin-transform-property-literals": "^7.10.4",
999 | "@babel/plugin-transform-regenerator": "^7.10.4",
1000 | "@babel/plugin-transform-reserved-words": "^7.10.4",
1001 | "@babel/plugin-transform-shorthand-properties": "^7.10.4",
1002 | "@babel/plugin-transform-spread": "^7.10.4",
1003 | "@babel/plugin-transform-sticky-regex": "^7.10.4",
1004 | "@babel/plugin-transform-template-literals": "^7.10.4",
1005 | "@babel/plugin-transform-typeof-symbol": "^7.10.4",
1006 | "@babel/plugin-transform-unicode-escapes": "^7.10.4",
1007 | "@babel/plugin-transform-unicode-regex": "^7.10.4",
1008 | "@babel/preset-modules": "^0.1.3",
1009 | "@babel/types": "^7.10.4",
1010 | "browserslist": "^4.12.0",
1011 | "core-js-compat": "^3.6.2",
1012 | "invariant": "^2.2.2",
1013 | "levenary": "^1.1.1",
1014 | "semver": "^5.5.0"
1015 | },
1016 | "dependencies": {
1017 | "@babel/plugin-syntax-dynamic-import": {
1018 | "version": "7.8.3",
1019 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
1020 | "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
1021 | "requires": {
1022 | "@babel/helper-plugin-utils": "^7.8.0"
1023 | }
1024 | }
1025 | }
1026 | },
1027 | "@babel/preset-modules": {
1028 | "version": "0.1.3",
1029 | "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
1030 | "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
1031 | "requires": {
1032 | "@babel/helper-plugin-utils": "^7.0.0",
1033 | "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
1034 | "@babel/plugin-transform-dotall-regex": "^7.4.4",
1035 | "@babel/types": "^7.4.4",
1036 | "esutils": "^2.0.2"
1037 | }
1038 | },
1039 | "@babel/preset-react": {
1040 | "version": "7.10.4",
1041 | "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz",
1042 | "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==",
1043 | "requires": {
1044 | "@babel/helper-plugin-utils": "^7.10.4",
1045 | "@babel/plugin-transform-react-display-name": "^7.10.4",
1046 | "@babel/plugin-transform-react-jsx": "^7.10.4",
1047 | "@babel/plugin-transform-react-jsx-development": "^7.10.4",
1048 | "@babel/plugin-transform-react-jsx-self": "^7.10.4",
1049 | "@babel/plugin-transform-react-jsx-source": "^7.10.4",
1050 | "@babel/plugin-transform-react-pure-annotations": "^7.10.4"
1051 | }
1052 | },
1053 | "@babel/preset-typescript": {
1054 | "version": "7.10.4",
1055 | "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz",
1056 | "integrity": "sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==",
1057 | "requires": {
1058 | "@babel/helper-plugin-utils": "^7.10.4",
1059 | "@babel/plugin-transform-typescript": "^7.10.4"
1060 | }
1061 | },
1062 | "@babel/runtime": {
1063 | "version": "7.10.4",
1064 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz",
1065 | "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==",
1066 | "requires": {
1067 | "regenerator-runtime": "^0.13.4"
1068 | }
1069 | },
1070 | "@babel/template": {
1071 | "version": "7.10.4",
1072 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
1073 | "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
1074 | "requires": {
1075 | "@babel/code-frame": "^7.10.4",
1076 | "@babel/parser": "^7.10.4",
1077 | "@babel/types": "^7.10.4"
1078 | }
1079 | },
1080 | "@babel/traverse": {
1081 | "version": "7.10.4",
1082 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz",
1083 | "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==",
1084 | "requires": {
1085 | "@babel/code-frame": "^7.10.4",
1086 | "@babel/generator": "^7.10.4",
1087 | "@babel/helper-function-name": "^7.10.4",
1088 | "@babel/helper-split-export-declaration": "^7.10.4",
1089 | "@babel/parser": "^7.10.4",
1090 | "@babel/types": "^7.10.4",
1091 | "debug": "^4.1.0",
1092 | "globals": "^11.1.0",
1093 | "lodash": "^4.17.13"
1094 | }
1095 | },
1096 | "@babel/types": {
1097 | "version": "7.10.4",
1098 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz",
1099 | "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==",
1100 | "requires": {
1101 | "@babel/helper-validator-identifier": "^7.10.4",
1102 | "lodash": "^4.17.13",
1103 | "to-fast-properties": "^2.0.0"
1104 | }
1105 | },
1106 | "ansi-styles": {
1107 | "version": "3.2.1",
1108 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1109 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1110 | "requires": {
1111 | "color-convert": "^1.9.0"
1112 | }
1113 | },
1114 | "babel-plugin-dynamic-import-node": {
1115 | "version": "2.2.0",
1116 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz",
1117 | "integrity": "sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==",
1118 | "requires": {
1119 | "object.assign": "^4.1.0"
1120 | }
1121 | },
1122 | "babel-plugin-lodash": {
1123 | "version": "3.3.4",
1124 | "resolved": "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz",
1125 | "integrity": "sha512-yDZLjK7TCkWl1gpBeBGmuaDIFhZKmkoL+Cu2MUUjv5VxUZx/z7tBGBCBcQs5RI1Bkz5LLmNdjx7paOyQtMovyg==",
1126 | "requires": {
1127 | "@babel/helper-module-imports": "^7.0.0-beta.49",
1128 | "@babel/types": "^7.0.0-beta.49",
1129 | "glob": "^7.1.1",
1130 | "lodash": "^4.17.10",
1131 | "require-package-name": "^2.0.1"
1132 | }
1133 | },
1134 | "babel-plugin-styled-components": {
1135 | "version": "1.10.0",
1136 | "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.0.tgz",
1137 | "integrity": "sha512-sQVKG8irFXx14ZfaK1bBePirfkacl3j8nZwSZK+ZjsbnadRHKQTbhXbe/RB1vT6Vgkz45E+V95LBq4KqdhZUNw==",
1138 | "requires": {
1139 | "@babel/helper-annotate-as-pure": "^7.0.0",
1140 | "@babel/helper-module-imports": "^7.0.0",
1141 | "babel-plugin-syntax-jsx": "^6.18.0",
1142 | "lodash": "^4.17.10"
1143 | }
1144 | },
1145 | "babel-plugin-syntax-jsx": {
1146 | "version": "6.18.0",
1147 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
1148 | "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
1149 | },
1150 | "babel-plugin-transform-imports": {
1151 | "version": "1.5.1",
1152 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-imports/-/babel-plugin-transform-imports-1.5.1.tgz",
1153 | "integrity": "sha512-Jkb0tjqye8kjOD7GdcKJTGB3dC9fruQhwRFZCeYS0sZO2otyjG6SohKR8nZiSm/OvhY+Ny2ktzVE59XKgIqskA==",
1154 | "requires": {
1155 | "babel-types": "^6.6.0",
1156 | "is-valid-path": "^0.1.1",
1157 | "lodash.camelcase": "^4.3.0",
1158 | "lodash.findkey": "^4.6.0",
1159 | "lodash.kebabcase": "^4.1.1",
1160 | "lodash.snakecase": "^4.1.1"
1161 | }
1162 | },
1163 | "babel-plugin-transform-inline-environment-variables": {
1164 | "version": "0.4.3",
1165 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.3.tgz",
1166 | "integrity": "sha1-o7CYgzU76LXiM24/8e+KXZP5xIk="
1167 | },
1168 | "babel-plugin-transform-react-remove-prop-types": {
1169 | "version": "0.4.24",
1170 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
1171 | "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="
1172 | },
1173 | "babel-plugin-transform-remove-console": {
1174 | "version": "6.9.4",
1175 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz",
1176 | "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A="
1177 | },
1178 | "babel-plugin-transform-remove-debugger": {
1179 | "version": "6.9.4",
1180 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz",
1181 | "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI="
1182 | },
1183 | "babel-runtime": {
1184 | "version": "6.26.0",
1185 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
1186 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
1187 | "requires": {
1188 | "core-js": "^2.4.0",
1189 | "regenerator-runtime": "^0.11.0"
1190 | },
1191 | "dependencies": {
1192 | "core-js": {
1193 | "version": "2.6.11",
1194 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
1195 | "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
1196 | },
1197 | "regenerator-runtime": {
1198 | "version": "0.11.1",
1199 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
1200 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
1201 | }
1202 | }
1203 | },
1204 | "babel-types": {
1205 | "version": "6.26.0",
1206 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
1207 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
1208 | "requires": {
1209 | "babel-runtime": "^6.26.0",
1210 | "esutils": "^2.0.2",
1211 | "lodash": "^4.17.4",
1212 | "to-fast-properties": "^1.0.3"
1213 | },
1214 | "dependencies": {
1215 | "to-fast-properties": {
1216 | "version": "1.0.3",
1217 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
1218 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
1219 | }
1220 | }
1221 | },
1222 | "balanced-match": {
1223 | "version": "1.0.0",
1224 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1225 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
1226 | },
1227 | "big.js": {
1228 | "version": "5.2.2",
1229 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
1230 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
1231 | },
1232 | "brace-expansion": {
1233 | "version": "1.1.11",
1234 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1235 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1236 | "requires": {
1237 | "balanced-match": "^1.0.0",
1238 | "concat-map": "0.0.1"
1239 | }
1240 | },
1241 | "browserslist": {
1242 | "version": "4.13.0",
1243 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz",
1244 | "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==",
1245 | "requires": {
1246 | "caniuse-lite": "^1.0.30001093",
1247 | "electron-to-chromium": "^1.3.488",
1248 | "escalade": "^3.0.1",
1249 | "node-releases": "^1.1.58"
1250 | }
1251 | },
1252 | "caniuse-lite": {
1253 | "version": "1.0.30001099",
1254 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz",
1255 | "integrity": "sha512-sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA=="
1256 | },
1257 | "chalk": {
1258 | "version": "2.4.2",
1259 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1260 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1261 | "requires": {
1262 | "ansi-styles": "^3.2.1",
1263 | "escape-string-regexp": "^1.0.5",
1264 | "supports-color": "^5.3.0"
1265 | }
1266 | },
1267 | "color-convert": {
1268 | "version": "1.9.3",
1269 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1270 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1271 | "requires": {
1272 | "color-name": "1.1.3"
1273 | }
1274 | },
1275 | "color-name": {
1276 | "version": "1.1.3",
1277 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1278 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
1279 | },
1280 | "concat-map": {
1281 | "version": "0.0.1",
1282 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1283 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
1284 | },
1285 | "convert-source-map": {
1286 | "version": "1.7.0",
1287 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
1288 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
1289 | "requires": {
1290 | "safe-buffer": "~5.1.1"
1291 | }
1292 | },
1293 | "core-js": {
1294 | "version": "3.0.1",
1295 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.0.1.tgz",
1296 | "integrity": "sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew=="
1297 | },
1298 | "core-js-compat": {
1299 | "version": "3.6.5",
1300 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
1301 | "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==",
1302 | "requires": {
1303 | "browserslist": "^4.8.5",
1304 | "semver": "7.0.0"
1305 | },
1306 | "dependencies": {
1307 | "semver": {
1308 | "version": "7.0.0",
1309 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
1310 | "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
1311 | }
1312 | }
1313 | },
1314 | "debug": {
1315 | "version": "4.1.1",
1316 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
1317 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
1318 | "requires": {
1319 | "ms": "^2.1.1"
1320 | }
1321 | },
1322 | "define-properties": {
1323 | "version": "1.1.3",
1324 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
1325 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
1326 | "requires": {
1327 | "object-keys": "^1.0.12"
1328 | }
1329 | },
1330 | "dom-walk": {
1331 | "version": "0.1.2",
1332 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
1333 | "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
1334 | },
1335 | "electron-to-chromium": {
1336 | "version": "1.3.496",
1337 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.496.tgz",
1338 | "integrity": "sha512-TXY4mwoyowwi4Lsrq9vcTUYBThyc1b2hXaTZI13p8/FRhY2CTaq5lK+DVjhYkKiTLsKt569Xes+0J5JsVXFurQ=="
1339 | },
1340 | "emojis-list": {
1341 | "version": "3.0.0",
1342 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
1343 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
1344 | },
1345 | "escalade": {
1346 | "version": "3.0.1",
1347 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz",
1348 | "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA=="
1349 | },
1350 | "escape-string-regexp": {
1351 | "version": "1.0.5",
1352 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1353 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
1354 | },
1355 | "esutils": {
1356 | "version": "2.0.3",
1357 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1358 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
1359 | },
1360 | "fast-levenshtein": {
1361 | "version": "2.0.6",
1362 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1363 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
1364 | },
1365 | "fs.realpath": {
1366 | "version": "1.0.0",
1367 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1368 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
1369 | },
1370 | "function-bind": {
1371 | "version": "1.1.1",
1372 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1373 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1374 | },
1375 | "gensync": {
1376 | "version": "1.0.0-beta.1",
1377 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
1378 | "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="
1379 | },
1380 | "glob": {
1381 | "version": "7.1.6",
1382 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1383 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
1384 | "requires": {
1385 | "fs.realpath": "^1.0.0",
1386 | "inflight": "^1.0.4",
1387 | "inherits": "2",
1388 | "minimatch": "^3.0.4",
1389 | "once": "^1.3.0",
1390 | "path-is-absolute": "^1.0.0"
1391 | }
1392 | },
1393 | "global": {
1394 | "version": "4.4.0",
1395 | "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
1396 | "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
1397 | "requires": {
1398 | "min-document": "^2.19.0",
1399 | "process": "^0.11.10"
1400 | }
1401 | },
1402 | "globals": {
1403 | "version": "11.12.0",
1404 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1405 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
1406 | },
1407 | "has-flag": {
1408 | "version": "3.0.0",
1409 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1410 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
1411 | },
1412 | "has-symbols": {
1413 | "version": "1.0.1",
1414 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
1415 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
1416 | },
1417 | "hoist-non-react-statics": {
1418 | "version": "3.3.2",
1419 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
1420 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
1421 | "requires": {
1422 | "react-is": "^16.7.0"
1423 | }
1424 | },
1425 | "inflight": {
1426 | "version": "1.0.6",
1427 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1428 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1429 | "requires": {
1430 | "once": "^1.3.0",
1431 | "wrappy": "1"
1432 | }
1433 | },
1434 | "inherits": {
1435 | "version": "2.0.4",
1436 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1437 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1438 | },
1439 | "invariant": {
1440 | "version": "2.2.4",
1441 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
1442 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
1443 | "requires": {
1444 | "loose-envify": "^1.0.0"
1445 | }
1446 | },
1447 | "is-extglob": {
1448 | "version": "1.0.0",
1449 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1450 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
1451 | },
1452 | "is-glob": {
1453 | "version": "2.0.1",
1454 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1455 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1456 | "requires": {
1457 | "is-extglob": "^1.0.0"
1458 | }
1459 | },
1460 | "is-invalid-path": {
1461 | "version": "0.1.0",
1462 | "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
1463 | "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=",
1464 | "requires": {
1465 | "is-glob": "^2.0.0"
1466 | }
1467 | },
1468 | "is-valid-path": {
1469 | "version": "0.1.1",
1470 | "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
1471 | "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=",
1472 | "requires": {
1473 | "is-invalid-path": "^0.1.0"
1474 | }
1475 | },
1476 | "js-tokens": {
1477 | "version": "4.0.0",
1478 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1479 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1480 | },
1481 | "jsesc": {
1482 | "version": "2.5.2",
1483 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1484 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
1485 | },
1486 | "json5": {
1487 | "version": "2.1.3",
1488 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
1489 | "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
1490 | "requires": {
1491 | "minimist": "^1.2.5"
1492 | }
1493 | },
1494 | "leven": {
1495 | "version": "3.1.0",
1496 | "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
1497 | "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
1498 | },
1499 | "levenary": {
1500 | "version": "1.1.1",
1501 | "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
1502 | "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
1503 | "requires": {
1504 | "leven": "^3.1.0"
1505 | }
1506 | },
1507 | "loader-utils": {
1508 | "version": "1.4.0",
1509 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
1510 | "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
1511 | "requires": {
1512 | "big.js": "^5.2.2",
1513 | "emojis-list": "^3.0.0",
1514 | "json5": "^1.0.1"
1515 | },
1516 | "dependencies": {
1517 | "json5": {
1518 | "version": "1.0.1",
1519 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
1520 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
1521 | "requires": {
1522 | "minimist": "^1.2.0"
1523 | }
1524 | }
1525 | }
1526 | },
1527 | "lodash": {
1528 | "version": "4.17.15",
1529 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
1530 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
1531 | },
1532 | "lodash.camelcase": {
1533 | "version": "4.3.0",
1534 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
1535 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
1536 | },
1537 | "lodash.findkey": {
1538 | "version": "4.6.0",
1539 | "resolved": "https://registry.npmjs.org/lodash.findkey/-/lodash.findkey-4.6.0.tgz",
1540 | "integrity": "sha1-gwWOkDtRy7dZ0JzPVG3qPqOcRxg="
1541 | },
1542 | "lodash.kebabcase": {
1543 | "version": "4.1.1",
1544 | "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
1545 | "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY="
1546 | },
1547 | "lodash.snakecase": {
1548 | "version": "4.1.1",
1549 | "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
1550 | "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40="
1551 | },
1552 | "loose-envify": {
1553 | "version": "1.4.0",
1554 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1555 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1556 | "requires": {
1557 | "js-tokens": "^3.0.0 || ^4.0.0"
1558 | }
1559 | },
1560 | "min-document": {
1561 | "version": "2.19.0",
1562 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
1563 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
1564 | "requires": {
1565 | "dom-walk": "^0.1.0"
1566 | }
1567 | },
1568 | "minimatch": {
1569 | "version": "3.0.4",
1570 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1571 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1572 | "requires": {
1573 | "brace-expansion": "^1.1.7"
1574 | }
1575 | },
1576 | "minimist": {
1577 | "version": "1.2.5",
1578 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1579 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1580 | },
1581 | "ms": {
1582 | "version": "2.1.2",
1583 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1584 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1585 | },
1586 | "node-releases": {
1587 | "version": "1.1.59",
1588 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz",
1589 | "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw=="
1590 | },
1591 | "object-assign": {
1592 | "version": "4.1.1",
1593 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1594 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1595 | },
1596 | "object-keys": {
1597 | "version": "1.1.1",
1598 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1599 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
1600 | },
1601 | "object.assign": {
1602 | "version": "4.1.0",
1603 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
1604 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
1605 | "requires": {
1606 | "define-properties": "^1.1.2",
1607 | "function-bind": "^1.1.1",
1608 | "has-symbols": "^1.0.0",
1609 | "object-keys": "^1.0.11"
1610 | }
1611 | },
1612 | "once": {
1613 | "version": "1.4.0",
1614 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1615 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1616 | "requires": {
1617 | "wrappy": "1"
1618 | }
1619 | },
1620 | "path-is-absolute": {
1621 | "version": "1.0.1",
1622 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1623 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1624 | },
1625 | "path-parse": {
1626 | "version": "1.0.6",
1627 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1628 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
1629 | },
1630 | "process": {
1631 | "version": "0.11.10",
1632 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
1633 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
1634 | },
1635 | "prop-types": {
1636 | "version": "15.7.2",
1637 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
1638 | "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
1639 | "requires": {
1640 | "loose-envify": "^1.4.0",
1641 | "object-assign": "^4.1.1",
1642 | "react-is": "^16.8.1"
1643 | }
1644 | },
1645 | "react-hot-loader": {
1646 | "version": "4.12.15",
1647 | "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.15.tgz",
1648 | "integrity": "sha512-sgkN6g+tgPE6xZzD0Ysqll7KUFYJbMX0DrczT5OxD6S7hZlSnmqSC3ceudwCkiDd65ZTtm+Ayk4Y9k5xxCvpOw==",
1649 | "requires": {
1650 | "fast-levenshtein": "^2.0.6",
1651 | "global": "^4.3.0",
1652 | "hoist-non-react-statics": "^3.3.0",
1653 | "loader-utils": "^1.1.0",
1654 | "prop-types": "^15.6.1",
1655 | "react-lifecycles-compat": "^3.0.4",
1656 | "shallowequal": "^1.1.0",
1657 | "source-map": "^0.7.3"
1658 | },
1659 | "dependencies": {
1660 | "source-map": {
1661 | "version": "0.7.3",
1662 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
1663 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
1664 | }
1665 | }
1666 | },
1667 | "react-is": {
1668 | "version": "16.13.1",
1669 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
1670 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
1671 | },
1672 | "react-lifecycles-compat": {
1673 | "version": "3.0.4",
1674 | "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
1675 | "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
1676 | },
1677 | "regenerate": {
1678 | "version": "1.4.1",
1679 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
1680 | "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A=="
1681 | },
1682 | "regenerate-unicode-properties": {
1683 | "version": "8.2.0",
1684 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
1685 | "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
1686 | "requires": {
1687 | "regenerate": "^1.4.0"
1688 | }
1689 | },
1690 | "regenerator-runtime": {
1691 | "version": "0.13.5",
1692 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
1693 | "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
1694 | },
1695 | "regenerator-transform": {
1696 | "version": "0.14.5",
1697 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
1698 | "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
1699 | "requires": {
1700 | "@babel/runtime": "^7.8.4"
1701 | }
1702 | },
1703 | "regexpu-core": {
1704 | "version": "4.7.0",
1705 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
1706 | "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
1707 | "requires": {
1708 | "regenerate": "^1.4.0",
1709 | "regenerate-unicode-properties": "^8.2.0",
1710 | "regjsgen": "^0.5.1",
1711 | "regjsparser": "^0.6.4",
1712 | "unicode-match-property-ecmascript": "^1.0.4",
1713 | "unicode-match-property-value-ecmascript": "^1.2.0"
1714 | }
1715 | },
1716 | "regjsgen": {
1717 | "version": "0.5.2",
1718 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
1719 | "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A=="
1720 | },
1721 | "regjsparser": {
1722 | "version": "0.6.4",
1723 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
1724 | "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
1725 | "requires": {
1726 | "jsesc": "~0.5.0"
1727 | },
1728 | "dependencies": {
1729 | "jsesc": {
1730 | "version": "0.5.0",
1731 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
1732 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
1733 | }
1734 | }
1735 | },
1736 | "require-package-name": {
1737 | "version": "2.0.1",
1738 | "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz",
1739 | "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk="
1740 | },
1741 | "resolve": {
1742 | "version": "1.17.0",
1743 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
1744 | "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
1745 | "requires": {
1746 | "path-parse": "^1.0.6"
1747 | }
1748 | },
1749 | "safe-buffer": {
1750 | "version": "5.1.2",
1751 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1752 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1753 | },
1754 | "semver": {
1755 | "version": "5.7.1",
1756 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1757 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
1758 | },
1759 | "shallowequal": {
1760 | "version": "1.1.0",
1761 | "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
1762 | "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
1763 | },
1764 | "source-map": {
1765 | "version": "0.5.7",
1766 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1767 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
1768 | },
1769 | "supports-color": {
1770 | "version": "5.5.0",
1771 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1772 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1773 | "requires": {
1774 | "has-flag": "^3.0.0"
1775 | }
1776 | },
1777 | "to-fast-properties": {
1778 | "version": "2.0.0",
1779 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1780 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
1781 | },
1782 | "unicode-canonical-property-names-ecmascript": {
1783 | "version": "1.0.4",
1784 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
1785 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="
1786 | },
1787 | "unicode-match-property-ecmascript": {
1788 | "version": "1.0.4",
1789 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
1790 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
1791 | "requires": {
1792 | "unicode-canonical-property-names-ecmascript": "^1.0.4",
1793 | "unicode-property-aliases-ecmascript": "^1.0.4"
1794 | }
1795 | },
1796 | "unicode-match-property-value-ecmascript": {
1797 | "version": "1.2.0",
1798 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
1799 | "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ=="
1800 | },
1801 | "unicode-property-aliases-ecmascript": {
1802 | "version": "1.1.0",
1803 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
1804 | "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="
1805 | },
1806 | "wrappy": {
1807 | "version": "1.0.2",
1808 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1809 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1810 | }
1811 | }
1812 | }
1813 |
--------------------------------------------------------------------------------