From 66f30cc54e836748c51f62223e310e1d6dad7ebd Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 30 May 2020 15:52:42 +0800 Subject: [PATCH 001/352] feat: init create-react-doc --- .babelrc.js | 33 + .bin/create-react-doc.js | 84 + .editorconfig | 20 + .eslintrc.js | 88 + .gitignore | 13 + .npmignore | 7 + .npmrc | 10 + .yarnrc | 10 + README.md | 154 +- package.json | 96 + src/build.js | 25 + src/commands/clean.js | 13 + src/commands/initProject.js | 47 + src/conf/path.js | 115 + src/conf/webpack.config.dev.js | 128 + src/conf/webpack.config.js | 109 + src/conf/webpack.config.prod.js | 170 + src/conf/webpack.config.server.js | 34 + src/publish.js | 35 + src/server.js | 47 + src/utils/initCatch.js | 36 + src/web/Router.js | 96 + src/web/index.js | 12 + src/web/rdoc.tree.data.json | 1 + templates/default/_.editorconfig | 20 + templates/default/_.gitignore | 13 + templates/default/_package.json | 22 + templates/default/about/README.md | 6 + templates/default/faq/README.md | 21 + templates/default/github/README.md | 4 + templates/default/home/README.md | 117 + templates/default/introduce/README.md | 6 + templates/default/introduce/api/README.md | 4 + templates/default/introduce/api/commands.md | 65 + templates/default/introduce/api/conf.md | 90 + .../default/introduce/api/markdown-config.md | 37 + templates/default/introduce/api/theme-api.md | 240 + .../default/introduce/assets/react-logo.svg | 9 + .../introduce/getting-started/README.md | 4 + .../introduce/getting-started/install.md | 38 + .../introduce/getting-started/publish.md | 62 + .../getting-started/site-creation.md | 70 + .../getting-started/site-preparation.md | 54 + templates/default/introduce/guides/README.md | 4 + .../default/introduce/guides/add-blog.md | 46 + .../default/introduce/guides/add-index.md | 62 + .../default/introduce/guides/custom-menu.md | 98 + templates/default/introduce/guides/html.md | 103 + .../default/introduce/guides/insert-img.md | 75 + templates/default/introduce/guides/link.md | 68 + .../default/introduce/guides/menu-sort.md | 52 + templates/default/introduce/guides/theme.md | 325 + templates/default/introduce/guides/website.md | 54 + templates/default/introduce/init-project.md | 51 + templates/default/introduce/precautions.md | 16 + theme/default/component/Footer/index.js | 19 + theme/default/component/Footer/index.less | 15 + theme/default/component/Header/index.js | 73 + theme/default/component/Header/index.less | 71 + theme/default/component/Loading/index.js | 12 + theme/default/component/Loading/index.less | 5 + theme/default/component/NoMatch/index.js | 21 + theme/default/component/NoMatch/index.less | 33 + theme/default/favicon.ico | Bin 0 -> 29275 bytes theme/default/index.html | 16 + theme/default/index.js | 107 + theme/default/index.less | 33 + theme/default/layout/BasicLayout.js | 130 + theme/default/layout/BasicLayout.less | 48 + theme/default/layout/IndexLayout.js | 45 + theme/default/layout/IndexLayout.less | 11 + theme/default/lib/markdown/InlineCode.js | 53 + theme/default/lib/markdown/InlineCode.less | 33 + theme/default/lib/markdown/Link.js | 34 + theme/default/lib/markdown/Link.less | 7 + theme/default/lib/markdown/index.js | 95 + theme/default/lib/markdown/style/css.less | 22 + theme/default/lib/markdown/style/default.less | 207 + theme/default/lib/markdown/style/diff.less | 3 + theme/default/lib/markdown/style/index.less | 36 + .../lib/markdown/style/javascript.less | 34 + theme/default/lib/markdown/style/swift.less | 14 + theme/default/lib/markdown/style/xml.less | 3 + theme/default/rdoc.logo.svg | 3 + theme/default/routes/Pages/index.js | 8 + yarn.lock | 9804 +++++++++++++++++ 86 files changed, 14213 insertions(+), 1 deletion(-) create mode 100644 .babelrc.js create mode 100755 .bin/create-react-doc.js create mode 100644 .editorconfig create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 .npmrc create mode 100644 .yarnrc create mode 100644 package.json create mode 100644 src/build.js create mode 100644 src/commands/clean.js create mode 100644 src/commands/initProject.js create mode 100644 src/conf/path.js create mode 100644 src/conf/webpack.config.dev.js create mode 100644 src/conf/webpack.config.js create mode 100755 src/conf/webpack.config.prod.js create mode 100644 src/conf/webpack.config.server.js create mode 100644 src/publish.js create mode 100644 src/server.js create mode 100644 src/utils/initCatch.js create mode 100644 src/web/Router.js create mode 100644 src/web/index.js create mode 100644 src/web/rdoc.tree.data.json create mode 100644 templates/default/_.editorconfig create mode 100644 templates/default/_.gitignore create mode 100644 templates/default/_package.json create mode 100644 templates/default/about/README.md create mode 100644 templates/default/faq/README.md create mode 100644 templates/default/github/README.md create mode 100644 templates/default/home/README.md create mode 100644 templates/default/introduce/README.md create mode 100644 templates/default/introduce/api/README.md create mode 100644 templates/default/introduce/api/commands.md create mode 100644 templates/default/introduce/api/conf.md create mode 100644 templates/default/introduce/api/markdown-config.md create mode 100644 templates/default/introduce/api/theme-api.md create mode 100644 templates/default/introduce/assets/react-logo.svg create mode 100644 templates/default/introduce/getting-started/README.md create mode 100644 templates/default/introduce/getting-started/install.md create mode 100644 templates/default/introduce/getting-started/publish.md create mode 100644 templates/default/introduce/getting-started/site-creation.md create mode 100644 templates/default/introduce/getting-started/site-preparation.md create mode 100644 templates/default/introduce/guides/README.md create mode 100644 templates/default/introduce/guides/add-blog.md create mode 100644 templates/default/introduce/guides/add-index.md create mode 100644 templates/default/introduce/guides/custom-menu.md create mode 100644 templates/default/introduce/guides/html.md create mode 100644 templates/default/introduce/guides/insert-img.md create mode 100644 templates/default/introduce/guides/link.md create mode 100644 templates/default/introduce/guides/menu-sort.md create mode 100644 templates/default/introduce/guides/theme.md create mode 100644 templates/default/introduce/guides/website.md create mode 100644 templates/default/introduce/init-project.md create mode 100644 templates/default/introduce/precautions.md create mode 100644 theme/default/component/Footer/index.js create mode 100644 theme/default/component/Footer/index.less create mode 100644 theme/default/component/Header/index.js create mode 100644 theme/default/component/Header/index.less create mode 100644 theme/default/component/Loading/index.js create mode 100644 theme/default/component/Loading/index.less create mode 100644 theme/default/component/NoMatch/index.js create mode 100644 theme/default/component/NoMatch/index.less create mode 100644 theme/default/favicon.ico create mode 100644 theme/default/index.html create mode 100644 theme/default/index.js create mode 100644 theme/default/index.less create mode 100644 theme/default/layout/BasicLayout.js create mode 100644 theme/default/layout/BasicLayout.less create mode 100644 theme/default/layout/IndexLayout.js create mode 100644 theme/default/layout/IndexLayout.less create mode 100644 theme/default/lib/markdown/InlineCode.js create mode 100644 theme/default/lib/markdown/InlineCode.less create mode 100644 theme/default/lib/markdown/Link.js create mode 100644 theme/default/lib/markdown/Link.less create mode 100644 theme/default/lib/markdown/index.js create mode 100644 theme/default/lib/markdown/style/css.less create mode 100644 theme/default/lib/markdown/style/default.less create mode 100644 theme/default/lib/markdown/style/diff.less create mode 100644 theme/default/lib/markdown/style/index.less create mode 100644 theme/default/lib/markdown/style/javascript.less create mode 100644 theme/default/lib/markdown/style/swift.less create mode 100644 theme/default/lib/markdown/style/xml.less create mode 100644 theme/default/rdoc.logo.svg create mode 100644 theme/default/routes/Pages/index.js create mode 100644 yarn.lock diff --git a/.babelrc.js b/.babelrc.js new file mode 100644 index 00000000..09bce0a2 --- /dev/null +++ b/.babelrc.js @@ -0,0 +1,33 @@ +const babelrc = { + "presets": [ + [ + "@babel/preset-env", { + "targets": { + "browsers": ["last 2 versions", "ie >= 10"] + } + } + ], + "@babel/preset-react" + ], + "plugins": [ + "@babel/plugin-syntax-object-rest-spread", + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-transform-async-to-generator", + "@babel/plugin-proposal-class-properties", + "@babel/plugin-transform-runtime" + ], + "env": { + "production": {} + }, +} + +if (process.env.NODE_ENV === 'development') { + // 不要包含多余的空格字符和行结束符。 + // 设置为“auto”时,对于大于500KB的输入大小,设置为"true"。 + // https://babeljs.io/docs/usage/api/#options + babelrc.cacheDirectory = true; +} else { + babelrc.compact = true; +} + +module.exports = babelrc diff --git a/.bin/create-react-doc.js b/.bin/create-react-doc.js new file mode 100755 index 00000000..8446bc4e --- /dev/null +++ b/.bin/create-react-doc.js @@ -0,0 +1,84 @@ +#!/usr/bin/env node +const FS = require('fs-extra'); +const PATH = require('path'); +const program = require('commander'); +const color = require('colors-cli/toxic'); +const initProject = require('../src/commands/initProject'); +const clean = require('../src/commands/clean'); +const initCatch = require('../src/utils/initCatch'); +const Servers = require('../src/server'); +const Build = require('../src/build'); +const Publish = require('../src/publish'); +const paths = require('../src/conf/path'); +const pkg = require('../package.json') + +program + .version(pkg.version, '-v, --version') + .description('Fast static site generator for React.') + .option('-i, init [path]', 'Create an empty website or reinitialize an existing one.') + .option('-d, --doc ', 'Other documents generated.') + .option('-o, --output ', 'Writes the compiled file to the disk directory.', '.create-react-doc-dist') + .option('-p, --port [number]', 'The port.', 5858) + .option('--host [host]', 'The host.', '0.0.0.0') + .option('-b, --branch ', 'Name of the branch you are pushing to.', 'gh-pages') + .option('--publish [url]', 'Other documents generated.') + .option('--build', 'Creating an optimized production build.') + .option('--clean', 'Delete the .cache folder.') + .on('--help', function () { + console.log('\n Examples:'); + console.log(); + console.log(' $ create-react-doc init'); + console.log(' $ create-react-doc init doc-example'); + console.log(' $ create-react-doc -d doc/mm'); + console.log(' $ create-react-doc -d tutorial,doc'); + console.log(' $ create-react-doc -d tutorial,doc --clean --build'); + console.log(' $ create-react-doc -p 2323 -d doc --clean'); + console.log(' $ create-react-doc -h 0.0.0.0 -d doc --clean'); + console.log(' $ create-react-doc --publish https://.git --branch master'); + console.log(); + }) + .parse(process.argv); +// create-react-doc 工具根目录 +// program.rdocPath = PATH.join(__dirname, '../'); +// 所有 Markdown 目录 +program.markdownPaths = []; +// 网站根目录 +program.projectPath = process.cwd(); +// 编译输出目录 +program.output = PATH.join(program.projectPath, program.output); + +// 网站根目录,指定的所有 Markdown 的目录 +if (program.doc) { + program.doc.split(',').forEach((itemPath) => program.markdownPaths.push(PATH.join(program.projectPath, itemPath))); +} + +if (program.clean) clean(program); +if (program.init) return initProject(program); + +// 将生成的代码,push 到指定仓库,已经分支。 +if (program.publish) { + return Publish(program) +} + +// 没有指定,文档目录 +if (program.markdownPaths.length === 0) return console.log(`Please specify the directory with the parameters "-d".`.red) + +let isExists = true; +// 判断指定文件夹是否存 +program.markdownPaths.forEach((item) => { + if (!FS.existsSync(item)) { + console.log(`Error: Directory ${item.yellow} does not exist`.red) + isExists = false; + } +}); + +if (isExists) { + FS.ensureDirSync(paths.catchDirPath); + initCatch(program, () => { + if (program.build) { + Build(program); + } else { + Servers(program); + } + }) +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..867d041a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[*.less] +indent_style = space +indent_size = 2 + +[Makefile] +indent_style = tab diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..722bc447 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,88 @@ +const eslintrc = { + "parser": "babel-eslint", + "extends": "airbnb", + "env": { + "browser": true, + "node": true, + "es6": true, + "mocha": true, + "jest": true, + "jasmine": true + }, + "plugins": [ + "react", + "import" + ], + "parserOptions": { + parser: 'babel-eslint', + }, + "rules": { + "linebreak-style": 0, + "func-names": 0, + "sort-imports": 0, + "arrow-body-style": 0, + "prefer-destructuring": 0, + "max-len": 0, + "consistent-return": 0, + "comma-dangle": [ + "error", + "always-multiline" + ], + "function-paren-newline": 0, + "class-methods-use-this": 0, + "react/sort-comp": 0, + "react/prop-types": 0, + "react/jsx-first-prop-new-line": 0, + "react/require-extension": 0, + "react/jsx-filename-extension": [ + 1, + { + "extensions": [ + ".js", + ".jsx" + ] + } + ], + "import/extensions": 0, + "import/no-unresolved": 0, + "import/no-extraneous-dependencies": 0, + "import/prefer-default-export": 0, + "jsx-a11y/no-static-element-interactions": 0, + "jsx-a11y/anchor-has-content": 0, + "jsx-a11y/click-events-have-key-events": 0, + "jsx-a11y/anchor-is-valid": 0, + "jsx-a11y/label-has-for": 0, + "jsx-a11y/no-noninteractive-element-interactions": 0, + "jsx-a11y/mouse-events-have-key-events": 0, + "react/no-danger": 0, + "react/jsx-no-bind": 0, + "react/forbid-prop-types": 0, + "react/require-default-props": 0, + "react/no-did-mount-set-state": 0, + "react/no-array-index-key": 0, + "react/no-find-dom-node": 0, + "react/no-unused-state": 0, + "react/no-unused-prop-types": 0, + "react/default-props-match-prop-types": 0, + "react/jsx-curly-spacing": 0, + "react/no-render-return-value": 0, + "object-curly-newline": 0, + "no-param-reassign": 0, + "no-return-assign": 0, + "no-redeclare": 0, + "no-restricted-globals": 0, + "no-restricted-syntax": 0, + "no-underscore-dangle": 0, + "no-unused-expressions": 0 + } +} + +if (process.env.NODE_ENV === 'development') { + Object.assign(eslintrc.rules, + { + 'no-console': 0, + 'no-unused-vars': 0, + }); +} + +module.exports = eslintrc diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..02daf57a --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +node_modules +.create-react-doc-dist +package-lock.json +.cache +.DS_Store + +*.bak +*.tem +*.log +*.temp +#.swp +*.*~ +~*.* diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..778d87ef --- /dev/null +++ b/.npmignore @@ -0,0 +1,7 @@ +.cache +.gitignore +.editorconfig +.create-react-doc-dist +node_modules +package-lock.json +dist \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..7edb6af8 --- /dev/null +++ b/.npmrc @@ -0,0 +1,10 @@ +# .npmrc + +registry=https://registry.npmjs.org/ + +# https://github.com/sass/node-sass#binary-configuration-parameters +sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ + +# https://github.com/Medium/phantomjs#deciding-where-to-get-phantomjs +# phantomjs_cdnurl=http://cnpmjs.org/downloads +phantomjs_cdnurl=https://npm.taobao.org/dist/phantomjs diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 00000000..4e37330a --- /dev/null +++ b/.yarnrc @@ -0,0 +1,10 @@ +# .yarnrc + +registry "https://registry.npmjs.org/" + +# https://github.com/sass/node-sass#binary-configuration-parameters +sass_binary_site "https://npm.taobao.org/mirrors/node-sass/" + +# https://github.com/Medium/phantomjs#deciding-where-to-get-phantomjs +# phantomjs_cdnurl "http://cnpmjs.org/downloads" +phantomjs_cdnurl "https://npm.taobao.org/dist/phantomjs" diff --git a/README.md b/README.md index bcd70a2a..1dee548a 100644 --- a/README.md +++ b/README.md @@ -1 +1,153 @@ -# create-react-doc \ No newline at end of file +

+ + + +

+ +create-react-doc +--- + +[![Join the chat at https://gitter.im/j-rdoc/Lobby](https://badges.gitter.im/j-rdoc/Lobby.svg)](https://gitter.im/j-rdoc/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![](https://img.shields.io/github/issues/jaywcjlove/rdoc.svg)](https://github.com/jaywcjlove/rdoc/issues) [![](https://img.shields.io/github/forks/jaywcjlove/rdoc.svg)](https://github.com/jaywcjlove/rdoc/network) [![](https://img.shields.io/github/stars/jaywcjlove/rdoc.svg)](https://github.com/jaywcjlove/rdoc/stargazers) [![](https://img.shields.io/github/release/jaywcjlove/rdoc.svg)](https://github.com/jaywcjlove/rdoc/releases) [![jaywcjlove/sb](https://jaywcjlove.github.io/sb/lang/english.svg)](README.md) + +基于 React 的快速静态网站生成器,你只需要写 Markdown 文档即可。 + +
+ +
+ +## 开始 + +**create-react-doc** 使用非常简单,只需将其它作为模块安装并运行即可创建您的网站。 + +让我们开始吧! + +### 安装 + +安装 `create-react-doc` 到你系统的全局,您需要在本地开发计算机上使用 `Node >= 8`。 + + +```bash +npm install create-react-doc -g + +# /usr/local/bin/create-react-doc -> /usr/local/lib/node_modules/create-react-doc/.bin/create-react-doc.js +# /usr/local/bin/create-react-doc-cli -> /usr/local/lib/node_modules/create-react-doc/.bin/create-react-doc.js +``` + +增加了 `create-react-doc-cli` 命令来解决 Mac 集成 `create-react-doc` 命令冲突。 + +1. 初始化项目 + +```bash +create-react-doc init my-project # Init project +# 或者 +create-react-doc-cli init my-project +``` + +2. 运行网站 + +```bash +cd my-project && npm install # 进入目录安装依赖 +npm start # 启动服务。 +``` + +3. 编译输出静态HTML资源。 + +```bash +npm run build +``` + +4. 在 `package.json` 中配置部署 `URL`。 + +```js +{ + "scripts": { + "deploy": "rdoc --publish " + ... + }, + ... +} +``` + +5. 部署到 Github `gh-pages` 分支。 + +```bash +npm run deploy +``` + +### 命令帮助 + +```shell +Usage: create-react-doc [options] + +Fast static site generator for React. + +Options: + + -i, init [path] 创建一个空的网站或重新初始化一个现有网站。 + -d, --doc 生成指定其他文档。 + -o, --output 将编译的文件写入磁盘目录。(默认:.rdoc-dist) + -p, --port [number] 端口。(默认: 5858) + --host [host] 主机. (默认: 0.0.0.0) + -b, --branch <分支>您要推送的分支的名称。(默认:gh-pages) + --publish [url] 将生成的代码,push到指定仓库,已经分支。 + --build 创建编译的生产版本。 + --clean 删除.cache文件夹。 + -h, --help 输出使用帮助文档。 + +Examples: + + $ create react doc init + $ create react doc init doc-example + $ create react doc -d doc/mm + $ create react doc -d tutorial,doc + $ create react doc -d tutorial,doc --clean --build + $ create react doc -p 2323 -d doc --clean + $ create react doc --host 0.0.0.0 -d doc --clean + $ create react doc --publish https://.git --branch master +``` + +### 开发 + +获取代码,进入目录,运行自动重载构建,: + +```shell +$ git clone https://github.com/MuYunyun/create-react-doc +$ cd create-react-doc # 进入目录 +$ npm install # or yarn install +``` + +要开发,请运行自重载构建: + +```bash +# 运行应用程序 +# 每次代码更改时,自动重新启动应用程序。 +# 在开发过程中很有用。 +$ npm run start +``` + +打开浏览器并访问 http://localhost:5858 + +### Folders + +```bash +. +├── README.md +├── .create-react-doc-dist +├── package.json +├── src +│   ├── build.js +│   ├── commands +│   ├── conf +│   ├── publish.js +│   ├── server.js +│   ├── utils +│   └── web +├── templates +│   └── default # 记录静态文件。 +└── theme + └── default +``` + +### License + +The MIT License (MIT) diff --git a/package.json b/package.json new file mode 100644 index 00000000..d57606c6 --- /dev/null +++ b/package.json @@ -0,0 +1,96 @@ +{ + "name": "create-react-doc", + "version": "0.0.1", + "description": "Fast static generated site. Just write markdown file.", + "homepage": "", + "bin": { + "create-react-doc": ".bin/create-react-doc.js", + "create-react-doc-cli": ".bin/create-react-doc.js" + }, + "scripts": { + "release": "release-it --src.tagName='v%s'", + "deploy": "node .bin/create-react-doc.js --publish git@github.com:react-doc/react-doc.github.io.git --branch master", + "start": "node .bin/create-react-doc.js -d templates/default/home,templates/default/introduce,templates/default/faq,templates/default/about,templates/default/github --clean", + "build": "node .bin/create-react-doc.js -d templates/default/home,templates/default/introduce,templates/default/faq,templates/default/about,templates/default/github --clean --build" + }, + "repository": { + "type": "git", + "url": "https://github.com/MuYunyun/create-react-doc" + }, + "keywords": [ + "react", + "create-react-doc" + ], + "author": "muyunyun", + "license": "MIT", + "dependencies": { + "@babel/cli": "7.2.3", + "@babel/core": "7.3.4", + "@babel/plugin-proposal-class-properties": "7.3.4", + "@babel/plugin-syntax-dynamic-import": "7.2.0", + "@babel/plugin-syntax-object-rest-spread": "7.2.0", + "@babel/plugin-transform-async-to-generator": "7.3.4", + "@babel/plugin-transform-runtime": "7.3.4", + "@babel/polyfill": "7.2.5", + "@babel/preset-env": "7.3.4", + "@babel/preset-react": "7.0.0", + "@babel/runtime": "7.3.4", + "@nuxtjs/friendly-errors-webpack-plugin": "2.0.2", + "babel-eslint": "^8.0.1", + "babel-loader": "8.0.5", + "classnames": "2.2.6", + "colors-cli": "1.0.13", + "commander": "2.12.2", + "copy-markdown-image-webpack-plugin": "2.0.0", + "copy-template-dir": "1.3.0", + "create-spare-webpack-plugin": "2.0.0", + "css-loader": "0.28.7", + "detect-port": "1.2.2", + "directory-tree-md": "2.0.7", + "eslint": "4.19.1", + "eslint-config-airbnb": "16.1.0", + "eslint-loader": "2.0.0", + "eslint-plugin-import": "2.11.0", + "eslint-plugin-jsx-a11y": "6.0.3", + "eslint-plugin-react": "7.7.0", + "file-loader": "1.1.11", + "fs-extra": "5.0.0", + "gh-pages": "1.2.0", + "highlight.js": "9.12.0", + "html-webpack-plugin": "3.2.0", + "less": "3.0.2", + "less-loader": "4.1.0", + "loading-cli": "1.0.6", + "local-ip-url": "1.0.1", + "mini-css-extract-plugin": "0.4.0", + "open-browsers": "1.1.1", + "optimize-css-assets-webpack-plugin": "4.0.0", + "postcss-flexbugs-fixes": "3.2.0", + "postcss-loader": "2.0.9", + "raw-content-replace-loader": "1.0.1", + "raw-extend-loader": "1.0.5", + "raw-tree-replace-loader": "1.1.0", + "react": "16.8.4", + "react-document-title": "2.0.3", + "react-dom": "16.8.4", + "react-dynamic-loadable": "1.1.2", + "react-hot-loader": "4.1.1", + "react-markdown": "3.3.0", + "react-router-dom": "4.2.2", + "rimraf": "2.6.2", + "string-replace-loader": "2.1.1", + "style-loader": "0.19.1", + "uglifyjs-webpack-plugin": "2.1.1", + "upath": "1.0.2", + "url-replace-loader": "1.0.0", + "webpack": "4.40.2", + "webpack-dev-middleware": "3.7.1", + "webpack-dev-server": "3.8.1", + "webpack-hot-dev-clients": "1.0.4", + "webpackbar": "4.0.0", + "write": "1.0.3" + }, + "devDependencies": { + "release-it": "10.1.0" + } +} diff --git a/src/build.js b/src/build.js new file mode 100644 index 00000000..a202434a --- /dev/null +++ b/src/build.js @@ -0,0 +1,25 @@ +const webpack = require('webpack'); +const conf = require('./conf/webpack.config.prod'); +require('colors-cli/toxic'); + +module.exports = function serve(program) { + const webpackConf = conf(program); + const compiler = webpack(webpackConf); + compiler.run((err, stats) => { + // 官方输出参数 + // https://webpack.js.org/configuration/stats/ + // https://github.com/webpack/webpack/issues/538#issuecomment-59586196 + /* eslint-disable */ + console.log(stats.toString({ + colors: true, + children: false, + chunks: false, + modules: false, + moduleTrace: false, + warningsFilter: (warning) => { + return true + } + })); + /* eslint-enable */ + }); +}; diff --git a/src/commands/clean.js b/src/commands/clean.js new file mode 100644 index 00000000..dd0200cc --- /dev/null +++ b/src/commands/clean.js @@ -0,0 +1,13 @@ +const FS = require('fs-extra'); +const paths = require('../conf/path'); + +module.exports = function (params) { + if (params.build && FS.pathExistsSync(paths.appBuildDist)) { + // 清空目录 + FS.emptyDirSync(paths.appBuildDist); + } + if (params.clean && FS.pathExistsSync(paths.catchDirPath)) { + // 清空目录 + FS.emptyDirSync(paths.catchDirPath); + } +}; diff --git a/src/commands/initProject.js b/src/commands/initProject.js new file mode 100644 index 00000000..a07f2c9c --- /dev/null +++ b/src/commands/initProject.js @@ -0,0 +1,47 @@ +const PATH = require('path'); +const FS = require('fs-extra'); +const copyTemplate = require('copy-template-dir'); +const paths = require('../conf/path'); + +const log = console.log; // eslint-disable-line + +module.exports = function (params) { + const outDir = typeof params.init === 'string' ? PATH.join(paths.projectPath, params.init) : paths.projectPath; + const projectName = PATH.basename(outDir); + + const rdocpkg = require(paths.rdocPackage); // eslint-disable-line + // 最后一个版本号替换成 x , 当发生变化最后一个版本安装最新版本 + const RDOC_VERSION = rdocpkg.version.split('.').slice(0, 2).concat('x').join('.'); + + // 输出目录清空 + if (!FS.pathExistsSync(outDir)) { + FS.ensureDirSync(outDir); + } + + // 目录不为空返回错误提示 + if (FS.readdirSync(PATH.join(outDir)).length > 0) { + return log(`\n ${'initialization failed! '.red} ${outDir.yellow} ${'is not an empty directory.'.red}\n`); + } + + // 复制模板 + if (FS.pathExistsSync(paths.defaultTemplatePath)) { + copyTemplate(paths.defaultTemplatePath, outDir, { + name: projectName, + rdocVersion: RDOC_VERSION, + }, (err, createdFiles) => { + if (err) return log(`Copy Tamplate Error: ${err} !!!`.red); + createdFiles.sort().forEach((createdFile) => { + log(` ${'create'.green} ${createdFile.replace(paths.projectPath, '')}`); + }); + + log('\n initialization finished!\n'.green); + let cmdstr = `cd ${projectName} && npm install && npm start`.cyan; + if (typeof params.init !== 'string') { + cmdstr = 'npm start'.cyan; + } + log(` Run the ${cmdstr} to start the website.\n\n`); + }); + } else { + return log(`Error: Directory ${paths.defaultTemplatePath} does not exist`.red); + } +}; diff --git a/src/conf/path.js b/src/conf/path.js new file mode 100644 index 00000000..d2a02cb2 --- /dev/null +++ b/src/conf/path.js @@ -0,0 +1,115 @@ +const PATH = require('path'); +const FS = require('fs'); + +// 确保在项目文件夹中的任何符号都解决了: +const appDirectory = FS.realpathSync(process.cwd()); +const toolDirectory = FS.realpathSync(__dirname); +// Markdown 所在目录 +const resolveApp = relativePath => PATH.resolve(appDirectory, relativePath); +// rdoc 工具所在目录 +const resolveTool = relativePath => PATH.resolve(toolDirectory, relativePath); + +// 获取 rdoc 配置 +function getRdocConf() { + const packagePath = resolveApp('./package.json'); + let conf = {}; + if (FS.existsSync(packagePath)) { + const confPkg = require(packagePath); // eslint-disable-line + conf = confPkg.rdoc; + } + const confPath = resolveApp('./.rdocrc.json'); + if (FS.existsSync(confPath)) { + const confRc = require(confPath) // eslint-disable-line + conf = confRc; + } + return conf; +} + +function getConfigFilePath(fileName, type) { + const conf = getRdocConf(); + // 这里是读取配置 + if (conf && conf[type]) { + // 主题目录加载 + if (type === 'theme') { + if (!conf[type]) conf[type] = fileName; + const _path = PATH.resolve(appDirectory, 'theme', conf[type]); + const _NodeModulesPath = PATH.resolve(appDirectory, 'node_modules', conf[type]); + if (FS.existsSync(_path)) { + return FS.realpathSync(_path); + } else if (FS.existsSync(_NodeModulesPath)) { + return FS.realpathSync(_NodeModulesPath); + } + return false; + } + if (/^(favicon|logo)$/.test(type)) { + return PATH.resolve(appDirectory, conf[type]); + } + } + const _filepath = PATH.resolve(appDirectory, fileName); + if (FS.existsSync(_filepath)) { + // 默认根目录下的 favicon|logo + return _filepath; + } + return false; +} + +// Get favicon path +const faviconPath = () => { + const _path = getConfigFilePath('./favicon.ico', 'favicon'); + if (_path) return _path; + return resolveTool('../../theme/default/favicon.ico'); +}; + +// Get logo path +const logoPath = () => { + const _path = getConfigFilePath('./logo.svg', 'logo'); + if (_path) return _path; + return false; +}; + +// Get theme path +const getThemePath = () => { + const _path = getConfigFilePath('./default', 'theme'); + if (_path) return _path; + return resolveTool('../../theme/default'); +}; + +const modPath = resolveApp('node_modules'); +function getExcludeFoldersRegExp() { + if (!FS.existsSync(modPath)) return []; + let regxExc = FS.readdirSync(modPath); + regxExc = regxExc.filter(item => !/rdoc(.*)/.test(item)); + + regxExc = regxExc.map((item) => { + let rgxPath = `node_modules${PATH.sep}${item}`; + if (PATH.sep === '\\') { + rgxPath = `node_modules\\${PATH.sep}${item}`; + } + return new RegExp(rgxPath); + }); + return regxExc; +} + +module.exports = { + // Markdown 所在目录 + rdocConf: getRdocConf(), + appThemePath: getThemePath(), + appPackage: resolveApp('./package.json'), + appNodeModules: resolveApp('node_modules'), + appBuildDist: resolveApp('.rdoc-dist'), + catchDirPath: resolveApp('.cache'), + docTreePath: resolveApp('.cache/.reactdoc.tree.json'), + watchFilePath: resolveApp('.cache/watch-dir.js'), + projectPath: appDirectory, + publicPath: '', + logoPath: logoPath(), + // rdoc 工具所在目录 + getExcludeFoldersRegExp: getExcludeFoldersRegExp(), + rdocPackage: resolveTool('../../package.json'), + defaultNodeModules: modPath, + defaultTemplatePath: resolveTool('../../templates/default'), + defaultFaviconPath: faviconPath(), + defaultHTMLPath: resolveTool('../../theme/default/index.html'), + appIndexJs: resolveTool('../web/index.js'), + appDir: resolveTool('../web'), +}; diff --git a/src/conf/webpack.config.dev.js b/src/conf/webpack.config.dev.js new file mode 100644 index 00000000..68e76cbb --- /dev/null +++ b/src/conf/webpack.config.dev.js @@ -0,0 +1,128 @@ +const autoprefixer = require('autoprefixer'); +const webpack = require('webpack'); +const PATH = require('path'); +const UPATH = require('upath'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const CreateSpareWebpackPlugin = require('create-spare-webpack-plugin'); +const FriendlyErrorsWebpackPlugin = require('@nuxtjs/friendly-errors-webpack-plugin'); +const config = require('./webpack.config'); +const paths = require('./path'); + +module.exports = function (cmd) { + config.mode = 'development'; + config.entry = [ + require.resolve('react-hot-loader/patch'), + require.resolve('webpack-hot-dev-clients/webpackHotDevClient'), + paths.appIndexJs, + ]; + config.module.rules = config.module.rules.map((item) => { + if (item.oneOf) { + const loaders = []; + loaders.push({ + // Process JS with Babel. + test: /\.(js|jsx|mjs)$/, + exclude: paths.getExcludeFoldersRegExp.concat(/\.(cache)/), + use: [ + { + loader: require.resolve('string-replace-loader'), + options: { + multiple: [ + { search: '__project_root__', replace: UPATH.normalizeSafe(paths.projectPath), flags: 'ig' }, + ], + }, + }, + { + loader: require.resolve('babel-loader'), + options: require('../../.babelrc'), // eslint-disable-line + }, + ], + }); + // https://ilikekillnerds.com/2018/03/disable-webpack-4-native-json-loader/ + loaders.push({ + test: /rdoc\.tree\.data\.json$/, + // 禁用Webpack 4本身的JSON加载程序 + type: 'javascript/auto', + use: [ + { + loader: require.resolve('raw-tree-replace-loader'), + options: { + include: /rdoc\.tree\.data\.json$/, // 检查包含的文件名字 + directoryTrees: { // 指定目录生成目录树,json + dir: cmd.markdownPaths, + mdconf: true, + extensions: /\.md/, + relativePath: true, + }, + }, + }, + ], + }); + + loaders.push({ + test: /\.(css|less)$/, + use: [ + require.resolve('style-loader'), + { + loader: require.resolve('css-loader'), + options: { + modules: true, + localIdentName: '[name]-[hash:base64:5]', + importLoaders: 1, + }, + }, + { + loader: require.resolve('postcss-loader'), + options: { + // Necessary for external CSS imports to work + // https://github.com/facebookincubator/create-react-app/issues/2677 + ident: 'postcss', + plugins: () => [ + require('postcss-flexbugs-fixes'), // eslint-disable-line + autoprefixer({ + browsers: [ + '>1%', + 'last 4 versions', + 'Firefox ESR', + 'not ie < 9', // React doesn't support IE8 anyway + ], + flexbox: 'no-2009', + }), + ], + }, + }, + require.resolve('less-loader'), + ], + }); + + item.oneOf = loaders.concat(item.oneOf); + } + return item; + }); + + config.plugins = config.plugins.concat([ + new webpack.HotModuleReplacementPlugin(), + new HtmlWebpackPlugin({ + inject: true, + favicon: paths.defaultFaviconPath, + template: paths.defaultHTMLPath, + title: paths.rdocConf && paths.rdocConf.title ? paths.rdocConf.title : 'Rdoc', + }), + // 将模块名称添加到工厂功能,以便它们显示在浏览器分析器中。 + // 当接收到热更新信号时,在浏览器console控制台打印更多可读性高的模块名称等信息 + new webpack.NamedModulesPlugin(), + new CreateSpareWebpackPlugin({ + // 备用文件目录,比对是否存在,不存在生成,根据sep 目录规则生成 + path: PATH.join(paths.catchDirPath, './md'), + sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 + directoryTrees: { // 索引目录 + dir: cmd.markdownPaths, + mdconf: true, + extensions: /\.md$/, + }, + }), + new FriendlyErrorsWebpackPlugin({ + clearConsole: true, + }), + ]); + return config; +}; diff --git a/src/conf/webpack.config.js b/src/conf/webpack.config.js new file mode 100644 index 00000000..f2d721ca --- /dev/null +++ b/src/conf/webpack.config.js @@ -0,0 +1,109 @@ +const PATH = require('path'); +const webpack = require('webpack'); +const WebpackBar = require('webpackbar'); +const UPATH = require('upath'); +const paths = require('./path'); +const pkg = require('../../package.json'); + +const define = { FOOTER: null }; +if (paths.rdocConf && paths.rdocConf.footer && typeof paths.rdocConf.footer === 'string') { + define.FOOTER = JSON.stringify(paths.rdocConf.footer); +} + +module.exports = { + entry: {}, + output: { + path: paths.appBuildDist, + publicPath: paths.publicPath, + filename: 'js/[name].[hash:8].js', + chunkFilename: 'js/[name].[hash:8].js', + }, + resolve: { + alias: { + 'rdoc-theme': UPATH.normalizeSafe(paths.appThemePath), + }, + }, + module: { + rules: [ + { + test: /\.(js|jsx|mjs)$/, + exclude: [/node_modules/, /\.(cache)/, /rdoc-theme-(.*)/], + enforce: 'pre', + use: [ + // TODO:禁用require.ensure也不是一种标准的语言特征。 + // 我们等待https://github.com/facebookincubator/create-react-app/issues/2176。 + // { parser: { requireEnsure: false } }, + { + // 首先运行linter。 + // 在Babel处理js之前做这一点很重要。 + options: { + eslintPath: require.resolve('eslint'), + configFile: require.resolve('../../.eslintrc.js'), + }, + loader: require.resolve('eslint-loader'), + }, + ], + }, + { + // “oneOf”将遍历所有以下加载程序,直到一个符合要求。 + // 当没有加载器匹配时,它将返回到加载程序列表末尾的“file”加载器。 + oneOf: [ + { + test: /\.(svg|png|bmp|jpg|jpeg|gif)$/, + loader: require.resolve('url-replace-loader'), + options: { + limit: 10000, + name: 'img/[name].[hash:8].[ext]', + replace: [ + { + test: /rdoc\.logo\.svg$/, + path: paths.logoPath, + }, + ], + }, + }, + { + test: /\.md$/, + use: [ + { + loader: require.resolve('raw-content-replace-loader'), + options: { + path: PATH.join(paths.catchDirPath, './md'), // 需要替换的目录 + replace: paths.projectPath, // 替换成目标目录 + sep: /___/g, // 文件名存储,文件夹+下划线间隔+文件名 + }, + }, + ], + }, + // “file-loader”确保这些资源由WebpackDevServer服务。 + // 当您导入资源时,您将获得(虚拟)文件名。 + // 在生产中,它们将被复制到`build`文件夹。 + // 此加载程序不使用“test”,因此它将捕获所有模块 + { + // 排除`js`文件以保持“css”加载器工作,因为它注入它的运行时,否则将通过“文件”加载器处理。 + // 还可以排除“html”和“json”扩展名,以便它们被webpacks内部加载器处理。 + exclude: [/\.js$/, /\.html$/, /\.json$/], + loader: require.resolve('file-loader'), + options: { + name: 'static/[name].[hash:8].[ext]', + }, + }, + ], + }, + ], + }, + plugins: [ + new WebpackBar({ name: pkg.name }), + new webpack.DefinePlugin({ + VERSION: JSON.stringify(pkg.version), + ...define, + }), + ], + node: { + dgram: 'empty', + fs: 'empty', + net: 'empty', + tls: 'empty', + child_process: 'empty', + }, +}; diff --git a/src/conf/webpack.config.prod.js b/src/conf/webpack.config.prod.js new file mode 100755 index 00000000..90272077 --- /dev/null +++ b/src/conf/webpack.config.prod.js @@ -0,0 +1,170 @@ +const autoprefixer = require('autoprefixer'); +const PATH = require('path'); +const UPATH = require('upath'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const CreateSpareWebpackPlugin = require('create-spare-webpack-plugin'); +const CopyMarkdownImageWebpackPlugin = require('copy-markdown-image-webpack-plugin'); +const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +const config = require('./webpack.config'); +const paths = require('./path'); + +module.exports = function (cmd) { + config.mode = 'production'; + config.entry = [paths.appIndexJs]; + config.output.filename = 'js/[hash:8].js'; + config.output.chunkFilename = 'js/[name].[hash:8].js'; + config.module.rules = config.module.rules.map((item) => { + if (item.oneOf) { + const loaders = []; + loaders.push({ + // Process JS with Babel. + test: /\.(js|jsx|mjs)$/, + exclude: paths.getExcludeFoldersRegExp.concat(/\.(cache)/), + use: [ + { + loader: require.resolve('string-replace-loader'), + options: { + multiple: [ + { search: '__project_root__', replace: UPATH.normalizeSafe(paths.projectPath), flags: 'ig' }, + ], + }, + }, + { + loader: require.resolve('babel-loader'), + options: require('../../.babelrc'), // eslint-disable-line + }, + ], + }); + // https://ilikekillnerds.com/2018/03/disable-webpack-4-native-json-loader/ + loaders.push({ + test: /rdoc\.tree\.data\.json$/, + // 禁用Webpack 4本身的JSON加载程序 + type: 'javascript/auto', + use: [ + { + loader: require.resolve('raw-tree-replace-loader'), + options: { + include: /rdoc\.tree\.data\.json$/, // 检查包含的文件名字 + directoryTrees: { // 指定目录生成目录树,json + dir: cmd.markdownPaths, + mdconf: true, + extensions: /\.md/, + relativePath: true, + }, + }, + }, + ], + }); + + loaders.push({ + test: /\.(css|less)$/, + use: [ + MiniCssExtractPlugin.loader, + { + loader: require.resolve('css-loader'), + options: { + modules: true, + localIdentName: '[name]-[hash:base64:5]', + importLoaders: 1, + }, + }, + { + loader: require.resolve('postcss-loader'), + options: { + // Necessary for external CSS imports to work + // https://github.com/facebookincubator/create-react-app/issues/2677 + ident: 'postcss', + plugins: () => [ + require('postcss-flexbugs-fixes'), // eslint-disable-line + autoprefixer({ + browsers: [ + '>1%', + 'last 4 versions', + 'Firefox ESR', + 'not ie < 9', // React doesn't support IE8 anyway + ], + flexbox: 'no-2009', + }), + ], + }, + }, + require.resolve('less-loader'), + ], + }); + + item.oneOf = loaders.concat(item.oneOf); + } + return item; + }); + config.optimization = { + runtimeChunk: true, + minimizer: [ + new UglifyJsPlugin({ + cache: true, + parallel: true, + sourceMap: true, // set to true if you want JS source maps + }), + new OptimizeCSSAssetsPlugin({}), + ], + splitChunks: { + minSize: 0, + chunks: 'initial', + cacheGroups: { + commons: { + chunks: 'initial', + minChunks: 2, + maxInitialRequests: 5, // The default limit is too small to showcase the effect + minSize: 2000, // This is example is too small to create commons chunks + }, + vendor: { + test: /node_modules/, + chunks: 'initial', + name: 'vendor', + priority: 10, + enforce: true, + }, + }, + }, + }; + + config.plugins = config.plugins.concat([ + new HtmlWebpackPlugin({ + inject: true, + favicon: paths.defaultFaviconPath, + template: paths.defaultHTMLPath, + title: paths.rdocConf && paths.rdocConf.title ? paths.rdocConf.title : 'Rdoc', + minify: { + removeAttributeQuotes: true, + collapseWhitespace: true, + html5: true, + minifyCSS: true, + removeComments: true, + removeEmptyAttributes: true, + }, + }), + new CopyMarkdownImageWebpackPlugin({ + dir: cmd.markdownPaths, + toDir: config.output.path, + }), + new CreateSpareWebpackPlugin({ + // 备用文件目录,比对是否存在,不存在生成,根据sep 目录规则生成 + path: PATH.join(paths.catchDirPath, './md'), + sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 + directoryTrees: { // 索引目录 + dir: cmd.markdownPaths, + mdconf: true, + extensions: /\.md$/, + }, + }), + // new webpack.optimize.DedupePlugin(), + new MiniCssExtractPlugin({ + // Options similar to the same options in webpackOptions.output + // both options are optional + filename: 'css/[contenthash].css', + chunkFilename: 'css/[id].css', + }), + ]); + return config; +}; diff --git a/src/conf/webpack.config.server.js b/src/conf/webpack.config.server.js new file mode 100644 index 00000000..ded48bba --- /dev/null +++ b/src/conf/webpack.config.server.js @@ -0,0 +1,34 @@ +const protocol = process.env.HTTPS === 'true' ? 'https' : 'http'; + +module.exports = (cmd, webpackConf) => { + return { + // 启用生成文件的gzip压缩。 + compress: true, + // 沉默WebpackDevServer自己的日志,因为它们通常没有用处。 + // 这个设置仍然会显示编译警告和错误。 + clientLogLevel: 'none', + // contentBase: conf.output.appPublic, + publicPath: webpackConf.output.publicPath, + hot: true, + historyApiFallback: { + // 带点的路径仍应使用历史回退。 + // See https://github.com/facebookincubator/create-react-app/issues/387. + disableDotRule: true, + }, + // historyApiFallback: true, + // WebpackDevServer默认是嘈杂的,所以我们发出自定义消息 + // 通过上面的`compiler.plugin`调用来监听编译器事件。 + quiet: true, + // 如果HTTPS环境变量设置为“true”,则启用HTTPS + https: protocol === 'https', + // 告诉服务器从哪里提供内容。提供静态文件,这只是必要的。 + contentBase: cmd.markdownPaths, + // 通知服务器观察由devServer.contentBase选项提供的文件。 + // 文件更改将触发整页重新加载。 + watchContentBase: true, + // 这样可以避免某些系统的CPU过载。 + watchOptions: { + ignored: /node_modules/, + }, + }; +}; diff --git a/src/publish.js b/src/publish.js new file mode 100644 index 00000000..9bf57229 --- /dev/null +++ b/src/publish.js @@ -0,0 +1,35 @@ +const FS = require('fs'); +const ghpages = require('gh-pages'); +const loading = require('loading-cli'); + +const log = console.log; // eslint-disable-line + +module.exports = function server(cmd) { + if (!FS.existsSync(cmd.output)) { + log(`You need to run the ${`\"npm run build\"`.yellow} command.`); // eslint-disable-line + log(`The ${(cmd.output).red} folder does net exist!\n`); + return; + } + + log(' Start public to your git repo'.green); + log(` ${cmd.publish}\n`.green); + const load = loading({ + text: 'Please wait ...'.blue, + color: 'blue', + interval: 100, + stream: process.stdout, + }).start(); + + ghpages.publish(cmd.output, { + branch: cmd.branch, + repo: cmd.publish, + message: `Update website, ${new Date()}!`, + }, (err) => { + load.stop(); + if (err) { + return log(err); + } + log(`\n Push to ${cmd.branch} success!\n`.green.bold); + }); +}; + diff --git a/src/server.js b/src/server.js new file mode 100644 index 00000000..b6117e76 --- /dev/null +++ b/src/server.js @@ -0,0 +1,47 @@ +const webpack = require('webpack'); +const WebpackDevServer = require('webpack-dev-server'); +const openBrowsers = require('open-browsers'); +const detect = require('detect-port'); +const prepareUrls = require('local-ip-url/prepareUrls'); +const conf = require('./conf/webpack.config.dev'); +const createDevServerConfig = require('./conf/webpack.config.server'); +require('colors-cli/toxic'); + +function clearConsole() { + process.stdout.write(process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H'); +} + +module.exports = function server(cmd) { + const HOST = cmd.host; + let DEFAULT_PORT = cmd.port; + const webpackConf = conf(cmd); + const compiler = webpack(webpackConf); + + + detect(DEFAULT_PORT).then((_port) => { + if (DEFAULT_PORT !== _port) DEFAULT_PORT = _port; + + const protocol = process.env.HTTPS === 'true' ? 'https' : 'http'; + const urls = prepareUrls({ protocol, host: HOST, port: DEFAULT_PORT }); + // https://webpack.js.org/api/compiler-hooks/#aftercompile + // 编译完成之后打印日志 + compiler.hooks.done.tap('done', () => { + /* eslint-disable */ + console.log(`Dev Server Listening at Local: ${urls.localUrl.green}`); + console.log(` On Your Network: ${urls.lanUrl.green}`); + console.log(`\nTo create a production build, use ${'npm run build'.blue_bt}.`); + /* eslint-enable */ + }); + + new WebpackDevServer(compiler, createDevServerConfig(cmd, webpackConf)).listen(DEFAULT_PORT, HOST, (err) => { + if (err) { + return console.log(err); // eslint-disable-line + } + clearConsole(); + // open browser + openBrowsers(urls.localUrl); + }); + }).catch((err) => { + console.log(err); // eslint-disable-line + }); +}; diff --git a/src/utils/initCatch.js b/src/utils/initCatch.js new file mode 100644 index 00000000..e525be4d --- /dev/null +++ b/src/utils/initCatch.js @@ -0,0 +1,36 @@ +const DirectoryTree = require('directory-tree-md'); +const write = require('write'); +const PATH = require('path'); +const FS = require('fs'); +const paths = require('../conf/path'); + +function restRuctureMarkodwn(items, arr = []) { + items.forEach((item) => { + if (item.type === 'directory') { + restRuctureMarkodwn(item.children, arr); + } else if (/\.md$/.test(item.path)) { + arr.push(item.path); + } + }); + return arr; +} + +module.exports = function (program, cb) { + const treeData = program.markdownPaths.map(path => DirectoryTree(path, { + mdconf: true, // 存在Markdown设置 + extensions: /\.md/, + })); + + // 缓存 Markdown 存储 Markdown + // Markdown 文件命名规则 `文件夹__文件夹__Markdown名.md` + restRuctureMarkodwn(treeData).forEach((mdfile) => { + let writeMarkdownPath = PATH.resolve(process.cwd(), paths.catchDirPath, 'md'); + const underlineFileName = mdfile.replace(process.cwd() + PATH.sep, '').split(PATH.sep).join('___'); + writeMarkdownPath = PATH.resolve(writeMarkdownPath, underlineFileName); + if (FS.existsSync(mdfile)) { + const content = FS.readFileSync(mdfile); + write.sync(writeMarkdownPath, content); + } + }); + cb(); +}; diff --git a/src/web/Router.js b/src/web/Router.js new file mode 100644 index 00000000..0bee5397 --- /dev/null +++ b/src/web/Router.js @@ -0,0 +1,96 @@ +import React from 'react'; +import { HashRouter, withRouter, Route, Switch } from 'react-router-dom'; +import lazyload from 'react-dynamic-loadable'; +import theme from 'rdoc-theme'; +import menuSource from './rdoc.tree.data.json'; + +// 判断目录下是否存在 README.md +// 存在返回路由属性,表示是一个路由 +function directoryIsRoute(arr, props = false) { + if (!arr || arr.length === 0) return false; + const index = arr.filter(item => item.name === 'README.md' && item.mdconf); + if (index && index.length > 0) props = { ...index[0] }; + return props; +} +// 路由数据序列化 +function routeData(data, arrayRoute = [], routePath = '/', article) { + data.forEach((item) => { + const routeProps = directoryIsRoute(item.children); + const routePropsCurrent = `${routePath}${item.name}`.replace(/.md$/, ''); + if (item.type === 'directory' && routeProps) { + const { mdconf, ...otherItem } = routeProps; + arrayRoute.push({ + path: routePropsCurrent, + mdconf: mdconf || {}, + props: { ...otherItem }, + article: article || item.name, + }); + } else { + const { mdconf, ...otherItem } = item; + arrayRoute.push({ + path: routePropsCurrent, + mdconf: mdconf || { title: item.name }, + props: { ...otherItem }, + article: article || item.name, + }); + } + if (item.children && item.children.length > 0) { + arrayRoute.concat(routeData(item.children, arrayRoute, `${routePropsCurrent}/`, article || item.name)); + } + }); + return arrayRoute; +} + + +function menuSourceFormat(data, routePath, article) { + const arr = []; + data.forEach((item) => { + const routePropsCurrent = `${routePath || ''}/${item.name}`.replace(/.md$/, ''); + if (item.type === 'directory') { + const getDirReadmeProps = directoryIsRoute(item.children); + if (item.children && item.children.length > 0 && getDirReadmeProps) { + const { sort, title, mdconf, ...otherItem } = getDirReadmeProps; + item.mdconf = mdconf || {}; + item.props = otherItem || { isEmpty: true }; + item.sort = mdconf.sort ? mdconf.sort : 0; + item.children = menuSourceFormat(item.children, routePropsCurrent, article || item.name); + } else { + item.mdconf = { title: item.name }; + item.props = { isEmpty: true }; + item.sort = 0; + item.children = []; + } + } else { + item.title = item.mdconf && item.mdconf.title ? item.mdconf.title : item.name.replace(item.extension, ''); + item.sort = item.mdconf && item.mdconf.sort ? item.mdconf.sort : 0; + if (!item.mdconf) { + item.props = { isEmpty: true }; + } + } + item.routePath = routePropsCurrent; + item.article = article || item.name; + arr.push(item); + }); + return arr; +} + +const RoutersContainer = withRouter(({ ...props }) => { + const passProps = { + routeData: routeData(menuSource), + menuSource: menuSourceFormat(menuSource), + ...props, + }; + return ( + + theme(lazyload, { ...routeProps, ...passProps })} /> + + ); +}); + +export default function RouterRoot() { + return ( + + + + ); +} diff --git a/src/web/index.js b/src/web/index.js new file mode 100644 index 00000000..2e4c82dc --- /dev/null +++ b/src/web/index.js @@ -0,0 +1,12 @@ +/* eslint-disable import/no-named-as-default-member */ +import React from 'react'; +import ReactDOM from 'react-dom'; +import '@babel/polyfill'; +// eslint-disable-next-line import/no-named-as-default +import RouterRoot from './Router'; + +ReactDOM.render( + , + document.getElementById('root') +); + diff --git a/src/web/rdoc.tree.data.json b/src/web/rdoc.tree.data.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/src/web/rdoc.tree.data.json @@ -0,0 +1 @@ +[] diff --git a/templates/default/_.editorconfig b/templates/default/_.editorconfig new file mode 100644 index 00000000..867d041a --- /dev/null +++ b/templates/default/_.editorconfig @@ -0,0 +1,20 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[*.less] +indent_style = space +indent_size = 2 + +[Makefile] +indent_style = tab diff --git a/templates/default/_.gitignore b/templates/default/_.gitignore new file mode 100644 index 00000000..5dadabd0 --- /dev/null +++ b/templates/default/_.gitignore @@ -0,0 +1,13 @@ +node_modules +package-lock.json +.DS_Store +.cache +.rdoc-dist + +*.bak +*.log +*.tem +*.temp +#.swp +*.*~ +~*.* diff --git a/templates/default/_package.json b/templates/default/_package.json new file mode 100644 index 00000000..9da79652 --- /dev/null +++ b/templates/default/_package.json @@ -0,0 +1,22 @@ +{ + "name": "{{name}}", + "version": "1.0.0", + "description": "Describe {{name}} here", + "private": true, + "scripts": { + "deploy": "rdoc --publish ", + "build": "rdoc -d home,introduce,faq,about,github --clean --build", + "start": "rdoc -d home,introduce,faq,about,github --clean" + }, + "keywords": [ + "{{name}}", + "rdoc", + "react-doc", + "react" + ], + "dependencies": { + "rdoc": "{{rdocVersion}}" + }, + "author": "", + "license": "MIT" +} diff --git a/templates/default/about/README.md b/templates/default/about/README.md new file mode 100644 index 00000000..38153c98 --- /dev/null +++ b/templates/default/about/README.md @@ -0,0 +1,6 @@ + + +这是一个文档生成工具,用于生成文档网站或简单的博客网站,你可以放到项目中依赖,也可以单独使用,更轻松的制作一个网站或者文档网站。 diff --git a/templates/default/faq/README.md b/templates/default/faq/README.md new file mode 100644 index 00000000..98c97a6f --- /dev/null +++ b/templates/default/faq/README.md @@ -0,0 +1,21 @@ + + +这里可以问一些常见问题。 + +1. 是否支持 Markdown 中写代码? + +> 支持在 Markdown 中写HTML、CSS。 + +2. 文档是否支持目录层级? + +> 支持菜单无线层级,在文件夹中建立文件夹,相对应建立 `README.md` + +3. 新增文件不能热加载,监听文件变化? + +> 新增一个 `Markdown` 文件是支持热加载的,需要如下步骤: +> - 添加完成之后必须 `Markdown` 文件不能为空。 +> - 如果只是添加注释配置或者空格,一样视为空。 +> - 在其它已加载的 `Markdown` 文件中保存一下。 diff --git a/templates/default/github/README.md b/templates/default/github/README.md new file mode 100644 index 00000000..021b2c59 --- /dev/null +++ b/templates/default/github/README.md @@ -0,0 +1,4 @@ + diff --git a/templates/default/home/README.md b/templates/default/home/README.md new file mode 100644 index 00000000..43633052 --- /dev/null +++ b/templates/default/home/README.md @@ -0,0 +1,117 @@ + + + +
+
+
Create React Doc
+
Create React Doc 是一个文档生成工具,用于生成文档网站或简单的博客网站。
简单到你只需写 Markdown 文件就可以帮助你生成网站。
同时可以方便的集成到你的项目工程中。
+ 快速开始 +
+
+
+ +在开始之前,推荐先学习 Markdown 语法,并正确安装和配置了 [Node.js](https://nodejs.org) v8.0 或以上。 + +主要用于快速生成文档工具或简单的网站,只需要写Markdown文件既可。 + +```bash +npm install create-react-doc -g # 安装工具 +# /usr/local/bin/create-react-doc -> /usr/local/lib/node_modules/create-react-doc/.bin/create-react-doc.js +# /usr/local/bin/create-react-doc-cli -> /usr/local/lib/node_modules/create-react-doc/.bin/create-react-doc.js + +create-react-doc init my-project # 初始化项目 +# 也可以使用 create-react-doc-cli 命令,跟 create-react-doc 命令是一样的 +# 增加 用 create-react-doc-cli 命令,目的是解决 Mac 系统自带的 Ruby 命令 create-react-doc 冲突 + +cd my-project && npm start # 进入工程,启动服务 +``` + +### Command + +```shell +Usage: create-react-doc [options] + +Fast static site generator for React. + +Options: + + -i, init [path] Create an empty website or reinitialize an existing one. + -d, --doc Other documents generated. + -o, --output Writes the compiled file to the disk directory. (default: .rdoc-dist) + -p, --port [number] The port. (default: 5858) + --host [host] The host. (default: 0.0.0.0) + -b, --branch Name of the branch you are pushing to. (default: gh-pages) + --publish [url] Other documents generated. + --build Creating an optimized production build. + --clean Delete the .cache folder. + -h, --help output usage information + +Examples: + + $ create-react-doc init + $ create-react-doc init doc-example + $ create-react-doc -d doc/mm + $ create-react-doc -d tutorial,doc + $ create-react-doc -d tutorial,doc --clean --build + $ create-react-doc -p 2323 -d doc --clean + $ create-react-doc --host 0.0.0.0 -d doc --clean + $ create-react-doc --publish https://.git --branch master +``` diff --git a/templates/default/introduce/README.md b/templates/default/introduce/README.md new file mode 100644 index 00000000..b9b2debe --- /dev/null +++ b/templates/default/introduce/README.md @@ -0,0 +1,6 @@ + + diff --git a/templates/default/introduce/api/README.md b/templates/default/introduce/api/README.md new file mode 100644 index 00000000..3c3f21ee --- /dev/null +++ b/templates/default/introduce/api/README.md @@ -0,0 +1,4 @@ + diff --git a/templates/default/introduce/api/commands.md b/templates/default/introduce/api/commands.md new file mode 100644 index 00000000..2e1f0d5c --- /dev/null +++ b/templates/default/introduce/api/commands.md @@ -0,0 +1,65 @@ + + +提供了一个 `create-react-doc-cli` 命令,跟 `create-react-doc` 命令是一样的,目的是解决 `Mac` 系统自带的 `Ruby` 命令 `create-react-doc` 冲突。 + +## 命令帮助 + +```shell +Usage: create-react-doc [options] + +Fast static site generator for React. + +Options: + + -i, init [path] Create an empty website or reinitialize an existing one. + -d, --doc Other documents generated. + -o, --output Writes the compiled file to the disk directory. (default: .rdoc-dist) + -p, --port [number] The port. (default: 5858) + -h, --host [host] The host. (default: 0.0.0.0) + -b, --branch Name of the branch you are pushing to. (default: gh-pages) + --publish [url] Other documents generated. + --build Creating an optimized production build. + --clean Delete the .cache folder. + -h, --help output usage information + +Examples: + + $ create-react-doc init + $ create-react-doc init doc-example + $ create-react-doc -d doc/mm + $ create-react-doc -d tutorial,doc + $ create-react-doc -d tutorial,doc --clean --build + $ create-react-doc -p 2323 -d doc --clean + $ create-react-doc -h 0.0.0.0 -d doc --clean + $ create-react-doc --publish https://.git --branch master +``` + + +## 命令配置实例 + +通常情况下,将上面命令配置到 `package.json` 中 + +```json +{ + "name": "doc-example", + "version": "1.0.0", + "scripts": { + "start": "rdoc -d home,introduce,faq,doc --clean" + }, + "license": "MIT" +} +``` + +也可以全局安装,直接运行全局命令,这样的话,每次只能编译一个网站。 + +```shell +$ rdoc -d doc/mm +$ rdoc -d tutorial,doc +$ rdoc -p 2323 -d doc --clean +$ rdoc -h 0.0.0.0 -d doc --clean +``` + + diff --git a/templates/default/introduce/api/conf.md b/templates/default/introduce/api/conf.md new file mode 100644 index 00000000..d2405754 --- /dev/null +++ b/templates/default/introduce/api/conf.md @@ -0,0 +1,90 @@ + + +配置文件可以添加设置网站内容和主题等 + +## 配置文件添加 + +配置可以通过 `package.json` 文件以 JSON 的形式添加,也可以通过,在根目录下添加 `.rdocrc.json` 文件,将配置内容存入该文件中。 + +## 配置说明 + +在 `package.json` 中添加配置 + +```diff +{ + "name": "doc", + "version": "1.0.0", + "scripts": { + "deploy": "rdoc --publish ", + "build": "rdoc -d home,introduce --clean --build", + "start": "rdoc -d home,introduce --clean" + }, ++ "rdoc": { ++ "theme": "rdoc-theme-load-react", ++ "favicon": "./assets/favicon.ico", ++ "logo": "./assets/rdoc.logo.svg", ++ "footer": "前端发" ++ "react_modules": { ++ "Hotkeys": "react-hot-keys" ++ } ++ }, + "dependencies": { + "rdoc": "1.4.x", ++ "rdoc-theme-load-react": "^1.1.0", ++ "react-hot-keys": "^1.1.0" + } +} +``` + +在 `.rdocrc.json` 中添加配置。 + +```json +{ + "title": "Rdoc title", + "theme": "rdoc-theme-load-react", + "favicon": "./assets/favicon.ico", + "logo": "./assets/rdoc.logo.svg", + "react_modules": { + "Hotkeys": "react-hot-keys" + } +} +``` + +⚠️注意: +1. 优先读取 `.rdocrc.json` 配置。 +2. 两种配置只有一种起作用。 + +### title + +设置默认网页标题内容。 + +```html +Rdoc title +``` + +### favicon + +默认显示 `rdoc` 的图标,自定义 `favicon` 需要自己生成一个图标命名为 `favicon.ico` 放在项目的根目录自动识别。添加配置,可以指定不同文件名和路径下的 `ico` 文件。 + +### logo + +默认显示 `rdoc` 的图标,自定义 `logo` 需要自己生成一个图标命名为 `logo.svg` 放在项目的根目录自动识别。添加配置,可以指定不同文件名和路径下的 `svg` 文件。 + +### theme + +默认使用 `rdoc` 的默认主题,你可以通过这个配置指定一个主题,同时你可以自定义自己的主题,这里有个实例 [rdoc-theme-load-react](https://github.com/react-doc/rdoc-theme-load-react),可以参照这个实例进行更改。 + +> ⚠️注意事项:主题必须以 rdoc-theme- 开头,否则会报错。 + +### react_modules + +这个参数是一个特定参数,需求是在制作主题的时候,你的主题需要预览 React 实例,实例还需要加载一些未知的第三方 React 组件,这个时候你需要在你的 Markdown 项目中安装你需要的 React 组件,在配置中指定你的组件,在预览实例中你就可以引用该组件了。 + +> ⚠️注意:还在研究实现方式。 + +### footer + +更改文档网站页脚 diff --git a/templates/default/introduce/api/markdown-config.md b/templates/default/introduce/api/markdown-config.md new file mode 100644 index 00000000..6fcdd28e --- /dev/null +++ b/templates/default/introduce/api/markdown-config.md @@ -0,0 +1,37 @@ + + +通过一些配置,配置菜单顺序、页面重定向、页面标题等功能。 + +1. 开始一段注释,来设置文档信息。 +2. 文件与文件夹不能重名。 + +## 配置 + +配置以 [YAML 1.2](http://www.yaml.org/) 格式来定义,放到一段注释内。 + +```markdown + +``` + +> **`title`** 设置了即为文档标题,默认以文档名称命名,如:`Layout.md` 文档标题为 `Layout`。 +> **`redirect`** 重定向到其它 `Markdown` 文件路由,Markdown文件必须不能为空。 +> **`sort`** 菜单顺序,排序顶部菜单,左边二级菜单顺序。 +> **`visible`** 为 `true` 仅在菜单上不显示,路由任然可以访问。 +> **`layout`** 默认模板指定 `IndexLayout`,将加载首页模板,并认定为首页。 +> **`github`** 指定一个URL,点击菜单跳转到对应的地址。 + +## 实例 + +下面是一个 Markdown 文档的配置,需要将配置写入 Markdown 文件中的顶部,并且以中文冒号间隔。 + +```markdown + +``` diff --git a/templates/default/introduce/api/theme-api.md b/templates/default/introduce/api/theme-api.md new file mode 100644 index 00000000..84e1d318 --- /dev/null +++ b/templates/default/introduce/api/theme-api.md @@ -0,0 +1,240 @@ + + +## 全局变量 + +全局变量 `__project_root__` 通常用于模板中懒加载 `markdown` 文件,例如: + +> 生成的缓存序列化文件,将被存放到当前目录下的 `.cache/md` 目录中。 + +```js +// 加载高亮库 +import hljs from 'highlight.js'; + +// filename 处理很重要 +// Markdown文件被处理成 `doc___fed___react___component-and-props.md` 这样, +// 路径以下划线间隔避免重复,所以 要获取路径得 通过 props.page.routeData 中获取 relative 路径来处理 +const filename = ''; +// 加载 Markdown 文件, +import(`__project_root__/.cache/md/${filename}.md`).then((data) => { + this.setState({ + markdown: data, + }, () => { + // 找到当前组件根节点,循环code, + // 对code里面的代码进行高亮 + let code = ReactDOM.findDOMNode(this); + code = code.getElementsByTagName('code'); + for (let i = 0; i < code.length; i += 1) { + if (code[i].parentNode && code[i].parentNode.tagName === 'PRE') { + hljs.highlightBlock(code[i]); + } + } + }); +}); +``` + +## Markdown 文件索引 + +那你需要建立一个 `替身` 文件 `rdoc.tree.data.json`,引用替身文件,就可以获取到目录索引内容,这个在编译的时候会自动返回文件索引的 `json`。 + +> ⚠️ 替身文件名字,必须取名 `rdoc.tree.data.json`。 +> ⚠️ 这个文件是必须建立,引用,这样可以渲染菜单。 +> ⚠️ rdoc v1.3.0 以后版本不需要,如果你有同名文件会被替换成,Markdown 文件索引。 +> ⚠️ Markdown 文件索引,会在入口函数传入。 + +```js +import menuSource from './rdoc.tree.data.json'; +``` + +## 模板入口 + +```js +import BaseLayout from './layout/BasicLayout'; +import Loading from './component/Loading'; + +export default function (Lazyload, props) { + if (props.routeData && props.routeData.length > 0) { + props.routeData.map((item) => { + item.component = Lazyload({ + component: () => import('./routes/Pages'), + LoadingComponent: Loading, + }); + return item; + }); + } + return ; +} +``` + +## 两个入口参数 + +`props` 提供路由索引,和 Markdown 文件索引信息。`Lazyload` 为懒加载方法。 + +### Lazyload + +文档工具包 [react-dynamic-loadable](https://github.com/jaywcjlove/react-dynamic-loadable) 提供的,懒加载方法,下面方法为路由添加 `component` 并传入相应参数。 + +```js +props.routeData.map((item) => { + item.component = Lazyload({ + component: () => import('./routes/Pages'), + LoadingComponent: Loading, + }); + return item; +}); +``` + +### props + +```js +{ + history: {length: 50, action: "POP", location: {…}, createHref: ƒ, push: ƒ, …}, + location: {pathname: "/introduce/api/theme-api", search: "", hash: "", state: undefined}, + match: {path: "/", url: "/", params: {…}, isExact: false}, + menuSource: [{…}, {…}, {…}, {…}, {…}], + routeData: [{…}, {…}, {…}, {…}, {…}], + staticContext: undefined +} +``` + +#### props.menuSource + +> path 你 Markdown 的全路径 +> name 文件夹或者文件的名称 +> type 当前节点是一个文件夹还是一个文件`file|directory` +> extension 类型为`file`的后缀 + +> **根据文件索引出来的参数** +> +> relative 相对于你指定的路径 +> routePath 路由路径 +> isEmpty +> size 文件大小 +> mdconf 是你在 Markdown中定义的参数 + +> **Markdown手动配置的参数** +> +> sort 排序 +> title 标题 +> visible 是否隐藏菜单 + +```json +[ + { + "path": "/Users/mac/doc-example/index", + "name": "index", + "children": [ + { + "path": "/Users/mac/doc-example/index/README.md", + "name": "README.md", + "relative": "/index/README.md", + "mdconf": { + "title": "首页", + "layout": "IndexLayout", + "visible": "true", + "logo": "/introduce/assets/react-logo.svg" + }, + "isEmpty": false, + "size": 1821, + "extension": ".md", + "type": "file", + "title": "首页", + "sort": 0, + "routePath": "/index/README", + "article": "index" + } + ], + "size": 1821, + "type": "directory", + "mdconf": { + "title": "首页", + "layout": "IndexLayout", + "visible": "true", + "logo": "/introduce/assets/react-logo.svg" + }, + "props": { + "path": "/Users/mac/doc-example/index/README.md", + "name": "README.md", + "relative": "/index/README.md", + "isEmpty": false, + "size": 1821, + "extension": ".md", + "type": "file" + }, + "sort": 0, + "routePath": "/index", + "article": "index" + } +] +``` + +#### props.routeData + +> props 文档配置及其信息 +> path 路由信息,配合 `React Router` 使用 +> relative 路径,从项目的,根目录开始,主要用于读取 Markdown 组合 Markdown 的文件名字 + +```json +[ + { + "path": "/introduce/api", + "mdconf": { + "title": "API", + "sort": "3" + }, + "props": { + "path": "/Users/mac/doc-example/introduce/api/README.md", + "name": "README.md", + "relative": "/introduce/api/README.md", + "isEmpty": true, + "size": 27, + "extension": ".md", + "type": "file" + }, + "article": "introduce", + "title": "" + },{ + "path": "/index", + "mdconf": { + "title": "首页", + "layout": "IndexLayout", + "visible": "true", + "logo": "/introduce/assets/react-logo.svg" + }, + "props": { + "path": "/Users/mac/doc-example/index/README.md", + "name": "README.md", + "relative": "/index/README.md", + "isEmpty": false, + "size": 1821, + "extension": ".md", + "type": "file" + }, + "article": "index", + "title": "" + }, +] +``` + +## BaseLayout + +这个是定于的主框架模板,俗称通用布局,主要用于定制头部右边,不常变换的内容,你可以定义多个 `Layout`, 例如你定义 `Markdown` 参数,根据参数加载不用样式的通用布局。 + + +## 默认依赖包 + +工具基础的前端包工具,制作主题需要安装依赖包,提供一个实例 [rdoc-theme-load-react](https://github.com/react-doc/rdoc-theme-load-react)。 + +```bash +{ + "classnames": "2.2.5", + "highlight.js": "9.12.0", + "prop-types": "15.6.0", + "react": "16.2.0", + "react-dom": "16.2.0", + "react-markdown": "3.1.3", + "react-router-dom": "4.2.2", +} +``` diff --git a/templates/default/introduce/assets/react-logo.svg b/templates/default/introduce/assets/react-logo.svg new file mode 100644 index 00000000..fe1fd86a --- /dev/null +++ b/templates/default/introduce/assets/react-logo.svg @@ -0,0 +1,9 @@ + + React Logo + + + + + + + diff --git a/templates/default/introduce/getting-started/README.md b/templates/default/introduce/getting-started/README.md new file mode 100644 index 00000000..73100ca1 --- /dev/null +++ b/templates/default/introduce/getting-started/README.md @@ -0,0 +1,4 @@ + diff --git a/templates/default/introduce/getting-started/install.md b/templates/default/introduce/getting-started/install.md new file mode 100644 index 00000000..88bf65e5 --- /dev/null +++ b/templates/default/introduce/getting-started/install.md @@ -0,0 +1,38 @@ + + +入门教程是,简单的一步一步配置一个工程,如果你等不急了,可以通过[快速开始](#/introduce/init-project)生成一个工程。 + +## 全局安装 + +并不推荐这种方法,直接 `运行` 和 `编译` 网站,时间长了,就不知道文档是使用什么版本的 `rdoc` 生成的。全局安装目的,是通过命令 `create-react-doc init my-project` 初始化一个工程。 + +```shell +$ npm install rdoc -g +## /usr/local/bin/rdoc -> /usr/local/lib/node_modules/rdoc/.bin/rdoc.js +## /usr/local/bin/rdoc-cli -> /usr/local/lib/node_modules/rdoc/.bin/rdoc.js +``` + +⚠️ 提供了一个 `rdoc-cli` 命令,跟 `rdoc` 命令是一样的,目的是解决 `Mac` 系统自带的 `Ruby` 命令 `rdoc` 冲突。 + +## 开发模式安装 + +这里是通过开发调试模式安装,因为没有开源,所以没有提供`npm install`方式安装 + +```shell +$ git clone https://github.com/MuYunyun/create-react-doc.git +$ cd create-react-doc + +## 全局命令安装使用 +$ npm link +## updated 2 packages in 8.343s +## /usr/local/bin/rdoc -> /usr/local/lib/node_modules/rdoc/.bin/rdoc.js +## /usr/local/lib/node_modules/rdoc -> /Users/****/rdoc + +$ cd doc-example # 进入项目,已经配置好的 rdoc 工程 +$ npm link rdoc +``` + +上面方法也是开发模式运行方法。 diff --git a/templates/default/introduce/getting-started/publish.md b/templates/default/introduce/getting-started/publish.md new file mode 100644 index 00000000..b517359c --- /dev/null +++ b/templates/default/introduce/getting-started/publish.md @@ -0,0 +1,62 @@ + + +文档网站搞好之后,可以发布到 Github 中,可以部署到自己的服务器上面,Github 仓库提供一个 `gh-pages` 分支,用于静态资源托管,意味着你将静态页面生成`push` 到这个分支直接可以预览。下面简单的介绍发布到 GitHub 中预览的步骤。 + + +## 生成静态资源 + +添加配置一条 `npm scripts`,通过命令运行生成静态资源 + +```diff +{ + "name": "doc-example", + "description": "Describe doc-example here", + "scripts": { ++ "build": "rdoc -d home,introduce,faq,example,about,github --build" + "start": "rdoc -d home,introduce,faq,example,about,github --clean" + }, + "dependencies": { + "rdoc": "1.2.x" + }, + "license": "MIT" +} +``` + +运行命令生成静态资源,默认静态资源生成到,当前工程根目录下的 `.rdoc-dist` 目录 + +⚠️ `.rdoc-dist` 目录为默认生成静态资源目录,建立文档目录的时候需要注意 + +```shell +$ npm run build +``` + +## 部署网站 + +添加配置一条 `npm scripts`, 通过命令部署到对应的 `Github` 仓库中。 + +```diff +{ + "name": "doc-example", + "description": "Describe doc-example here", + "scripts": { ++ "deploy": "rdoc --publish ", + "build": "rdoc -d home,introduce,faq,example,about,github --build" + "start": "rdoc -d home,introduce,faq,example,about,github --clean" + }, + "dependencies": { + "rdoc": "1.2.x" + }, + "license": "MIT" +} +``` + +同时可以指定分支,默认推送到 `gh-pages`分支,配置实例如下: + +```shell +$ rdoc --publish https://github.com/react-doc/react-doc.github.io.git --branch master +``` + +如果全局安装了 `rdoc` 工具,直接可以将上面命令放到命令行运行,记得在项目的根目录下运行哦。 diff --git a/templates/default/introduce/getting-started/site-creation.md b/templates/default/introduce/getting-started/site-creation.md new file mode 100644 index 00000000..2c387a81 --- /dev/null +++ b/templates/default/introduce/getting-started/site-creation.md @@ -0,0 +1,70 @@ + + +根据你创建的目录结构,配置命令生成网站 + +## 配置命令 + +如果你全局安装了 `rdoc` 工具,下面配置的命令直接可以运行,但是不建议这么干,推荐将下面命令到 `package.json` 中 + +> 1. `-d tutorial,doc` 参数 `-d` 指定 Markdown 所在的目录。 +> 2. 目录是有顺序的,用英文`,`逗号间隔不同的目录。 +> 3. 目录顺序也可以通过每个目录中的 README.md 改变顺序。 +> 4. `--clean` 参数,在每次启动的时候清理缓存替身文件。 + +```shell +$ rdoc -d home,introduce,faq,example,about,github --clean +``` + +## 配置npm命令 + +将上面命令实例,添加到 `package.json` 的 `scripts` 中。实例如下: + +> `package.json`可以通过命令生成 `npm init -y` + +```diff +{ + "name": "doc-example", + "description": "Describe doc-example here", + "scripts": { ++ "start": "rdoc -d home,introduce,faq,example,about,github --clean" + }, + "license": "MIT" +} +``` + +当前项目安装 rdoc 工具: + +```diff +{ + "name": "doc-example", + "description": "Describe doc-example here", + "scripts": { + "start": "rdoc -d home,introduce,faq,example,about,github --clean" + }, ++ "dependencies": { ++ "rdoc": "1.2.x" ++ }, + "license": "MIT" +} +``` + +## 运行命令 + +命令配置好之后,你就可以,通过 `npm` 运行它,将自动打开网址 http://localhost:5858/。 + +```shell +$ npm run start + +## Compiled successfully! + +## You can now view doc-example in the browser. + +## Local: http://localhost:5858/ +## On Your Network: http://192.168.188.109:5858/ + +## Note that the development build is not optimized. +## To create a production build, use npm run build. +``` diff --git a/templates/default/introduce/getting-started/site-preparation.md b/templates/default/introduce/getting-started/site-preparation.md new file mode 100644 index 00000000..08d775bf --- /dev/null +++ b/templates/default/introduce/getting-started/site-preparation.md @@ -0,0 +1,54 @@ + + +准备一个目录 `mkdir doc-example`, 在目录中创建一些文件,为你的网站规划一些目录结构。如果你不是初始化一个工程,那你在创建一个文档网站前,需要做一些准备工作,规划你的网站目录,比如 `顶部一级导航`。 + +## 生成配置文件 + +生成 `package.json` 文件 + +```shell +$ npm init -y +``` + +## 建立目录 + +建立几个目录,用于存放 `Markdown` 文件,后面配置指定这些目录,这些目录帮助你生成 `顶部一级导航`。 + +> 1. 一级导航目录下,建立目录,内容将展示在该栏目下面,会产生右边菜单栏。 +> 2. 每个目录下面建立 `README.md` 文件,视为一级导航需要展示的内容。 +> 3. 默认每个目录都需要建立一个 `README.md`。 + +根据上面规则,我创建了如下目录结构: + +**目录结构** + +``` +├── about +│   └── README.md +├── home +│   └── README.md +├── introduce +│   ├── README.md +│   ├── api +│   │   ├── README.md +│   │   ├── commands.md +│   │   ├── markdown-config.md +│   │   └── theme-api.md +│   ├── getting-started +│   │   ├── README.md +│   │   ├── install.md +│   │   ├── site-creation.md +│   │   └── site-preparation.md +│   └── guides +│   ├── README.md +│   ├── add-blog.md +│   ├── add-index.md +│   ├── custom-menu.md +│   ├── html.md +│   ├── insert-img.md +│   └── menu-sort.md +└── package.json +``` diff --git a/templates/default/introduce/guides/README.md b/templates/default/introduce/guides/README.md new file mode 100644 index 00000000..e80e6b96 --- /dev/null +++ b/templates/default/introduce/guides/README.md @@ -0,0 +1,4 @@ + diff --git a/templates/default/introduce/guides/add-blog.md b/templates/default/introduce/guides/add-blog.md new file mode 100644 index 00000000..73b44a31 --- /dev/null +++ b/templates/default/introduce/guides/add-blog.md @@ -0,0 +1,46 @@ + + +首先运行命令指定一个目录,将项目跑起来。假设,你在 `package.json` 中配置的命令如下: + +```js +{ + "scripts": { + "start": "rdoc -d doc" + }, + ... +} + +``` + +上面配置了 `doc` 为文档目录,里面存放 `Markdown` 文档,通过下面命令将网站跑起来: + +```shell +$ npm run start +``` + +如果你全局 安装 `rdoc` , 可以直接运行下面命令 + +```shell +$ rdoc -d doc # 不建议这么干,因为 rdoc 工具在更新,尽量放到package.json中,避免遗忘依赖的 rdoc 版本 +``` + +上面命令指向了一个目录,只需在这个目录里面添加 `Markdown` 文件即可,注意 `README.md` 是一个特殊名字,默认为首页,在 `git` 仓库中,被命名为 `README.md` 的文本文件,是会被 `git` 仓库识别为说明文档,我们在这边把它定义为首页,可以在 `git` 仓库中直接预览。 + +```shell +## 新建一个博客文章 +$ touch doc/README.md +``` + +在 `Markdown` 文件的顶部添加配置,配置熟悉方式是一段 `HTML` 注释,这样就可以在 `git` 仓库中不显示注释,同时又可以当做网站页面的配置。 + +```markdown + + +这里是博客的详细内容 +.... +``` diff --git a/templates/default/introduce/guides/add-index.md b/templates/default/introduce/guides/add-index.md new file mode 100644 index 00000000..b4b2a393 --- /dev/null +++ b/templates/default/introduce/guides/add-index.md @@ -0,0 +1,62 @@ + + + +在指定的目录,根目录下的 `README.md` 文件中,参数 `layout` 默认模板指定 `IndexLayout`,将加载首页模板,并认定为首页。通过指定 `visible` 参数表示不在导航菜单中显示。 + +```markdown + + +下面是首页内容 +``` + +添加 `title` 设置将全局标题都会带上。 + + +## 无限可能的想象 + +首页对应的 `README.md` 中写 HTML、CSS 可以搞出不一样的首页哦,本文档网站首页就是这么玩儿的,在里面放置了如下代码: + + +```html + +
+
+
RDoc
+
RDoc 是一个文档生成工具,用于生成文档网站或简单的博客网站,简单到你只需写 Markdown 文件就可以帮助你生成网站。同时可以方便的集成到你的项目工程中。 +
+
+
+
+``` diff --git a/templates/default/introduce/guides/custom-menu.md b/templates/default/introduce/guides/custom-menu.md new file mode 100644 index 00000000..5c7c852b --- /dev/null +++ b/templates/default/introduce/guides/custom-menu.md @@ -0,0 +1,98 @@ + + +## 主菜单定制 + +主菜单的定制,是通过 `建立` 目录来定制的,默认菜单名字是根据目录文件夹名字来显示,下面实例定义了主菜单有三个菜单,顺序分别为 `tutorial`、`doc`、`component` + +```shell +$ rdoc -d tutorial,doc +``` + +可以自定义菜单名字,通过在文件夹的跟目录建立 `README.md` 添加配置来设置菜单的名字。 + +```markdown + +``` + +⚠️ 通过配置菜单对应根目录下的 `README.md` 来改变 `菜单顺序` 和 `是否显示`,[配置参考](#/introduce/api/markdown-config)。 + +> sort 菜单顺序 +> visible 菜单是否显示 `true` 不显示 + +## Github跳转 + +新建一个目录 `github`,命令配置 `rdoc -d tutorial,doc,github` 将在主菜单上显示,在 `github` 目录下新建 `READEME.md` 文件,添加 Markdown 配置如下: + +> ⚠️ 注意: github 配置项,会增加 `github` 图标 +> 如果不想显示`图标`,就将 `github` 指定 `url` 配置。 + +```markdown + +``` + +## 子菜单定制 + +在某个菜单下面定制二级菜单,默认情况,只需要在该目录创建多个 `.md` 文件,如下目录结构,有四个子菜单`api`、`getting-started`、`guides`、`precautions`。 + +> ⚠️ 注意: 文件夹不能跟文件重名 + +```shell +└── introduce +    ├── README.md +    ├── api +    │   ├── README.md +    │   └── menu-config.md +    ├── getting-started +    │   ├── README.md +    │   └── site-preparation.md +    ├── guides +    │   ├── README.md +    │   └── menu-sort.md +    └── precautions.md +``` + +## 子菜单菜层级 + +以相同的方式在该目录下面创建目录,并且创建 `.md` 文件,再添加相应的配置即可,如下目录结构,二级菜单将有三层。 + +```shell +└── introduce +    ├── README.md +    ├── api +    │   ├── README.md +    │ ├── getting-started + │   │   ├── README.md + │   │   └── site-preparation.md +    │   └── menu-config.md +    └── precautions.md +``` + +## 菜单分类 + +子菜单分类是根据目录结构来分类的,假设你新建如下目录结构,配置的命令指向目录 `introduce`,那么你根目录下面的 `README.md` 里面可以配置一级导航的信息内容,二级目录文件夹分别为导航菜单的分类名称。 + +在 `introduce` 目录下面的,每个目录下,面再新建 `README.md` 来配置分类的各种信息,如此循环下去,可以新建一个树形菜单。 + +```shell +└── introduce +    ├── README.md +    ├── api +    │   ├── README.md +    │   └── menu-config.md +    ├── getting-started +    │   ├── README.md +    │   └── site-preparation.md +    ├── guides +    │   ├── README.md +    │   └── menu-sort.md +    └── precautions.md +``` diff --git a/templates/default/introduce/guides/html.md b/templates/default/introduce/guides/html.md new file mode 100644 index 00000000..193fddf1 --- /dev/null +++ b/templates/default/introduce/guides/html.md @@ -0,0 +1,103 @@ + + +在 `Markdown` 文档中支持 `HTML` 代码运行,请谨慎使用,如果你对前端代码有所了解,这一功能,将对你的文档生有很大的想象,比如添加网站统计功能,自定义一个页面等等。 + +## HTML & CSS + +下面是 `HTML` 代码实例运行效果 + + +
这里是Markdown内部HTML代码运行实例
+ +可将下面代码复制到 Markdown 中运行查看效果: + +```html + +
这里是Markdown内部HTML代码运行实例
+``` + +## JavaScript + +> ⚠️ 目前 `Markdown` 中不支持 `JS` 代码运行。 + +
这里是Markdown内部 JS 代码运行实例
+ + + + + +## HTML Demo 预览 + +需要在代码块前后加上一段 ` ` 和 `` 注释即可,代码如下: + +``` + +\```html +
+ Test Preview HTML Example. +
+ +\``` + +``` + +下面是效果 + + +```html +
+ Test Preview HTML Example. +
+ +``` + + +目前只预览 `HTML`, 下面为 `LESS` 展示 + + +```less +.wapper { + &::after { + content: ''; + display: block; + clear: both; + } +} + +.wapperContent { + padding: 15px 0 0 0; + max-width: 1200px; + margin: 0px auto 0; +} +``` + diff --git a/templates/default/introduce/guides/insert-img.md b/templates/default/introduce/guides/insert-img.md new file mode 100644 index 00000000..30758f9d --- /dev/null +++ b/templates/default/introduce/guides/insert-img.md @@ -0,0 +1,75 @@ + + +Markdown 文档内可以插入图片资源。 + +## 通过 Markdown 语法插入图片 + +Markdown 语法插入图片,将无法控制图片尺寸大小。 + +![react-logo](https://avatars1.githubusercontent.com/u/1680273?s=460&v=4) + +```markdown +![react-logo](https://avatars1.githubusercontent.com/u/1680273?s=460&v=4) +``` + +## HTML插入图片 + +通过HTML来引入图片显示,可以通过设置样式控制图片的尺寸大小 + + + + +```html + + +``` + +## 图片路径 + +这里图片路径有点特殊,所以在此做详细说明,假设,你的下目录如下: + +```shell +├── doc +│   ├── README.md +│   └── react +│   └── README.md +├── introduce +│   ├── api +│   │   └── menu-config.md +│   ├── assets +│   │   ├── react-logo.svg +│   │   └── webpack-logo.svg +│   └── precautions.md +├── package.json +└── src + └── component +``` + +配置运行命令如下: + +```shell +$ rdoc -d doc,introduce --clean +``` + +现在你的目录 `introduce/assets` 下面有两个图片 `react-logo.svg`、`webpack-logo.svg`,你需要在 `doc/react/README.md` Markdown 文件中 访问这两张图片,此时你的访问路径应该是,相对于 `introduce` 目录下找到图片,图片引用如下: + +```markdown +![react-logo](./assets/react-logo.svg) +``` + +因为你上面命令配置了三个根目录文件夹,`introduce`文件夹是其中之一,所以路径不包含根目录。 + +现在假设,你在 `introduce` 当前目录的 `introduce/api/menu-config.md` Markdown 文件中访问 `introduce/assets` 文件夹下面的 `webpack-logo.svg` 图片,这个时候,两个资源都在同一个根目录下,图片引用如下,跟上面一样的路径: + +```markdown +![react-logo](./assets/react-logo.svg) +``` + +这个时候你也可以相对于 `menu-config.md` Markdown 文件,路径如下: + +```markdown +![react-logo](../assets/react-logo.svg) +``` diff --git a/templates/default/introduce/guides/link.md b/templates/default/introduce/guides/link.md new file mode 100644 index 00000000..2150f23e --- /dev/null +++ b/templates/default/introduce/guides/link.md @@ -0,0 +1,68 @@ + + +目前 rdoc 支持 Markdown 连接,同时支持代码编辑器预览。 + +## Markdown 语法连接 + +### 常用链接方法 + +```markdown +文字链接 [链接名称](http://链接网址) +网址链接 +``` + +### 高级链接技巧 + +```markdown +这个链接用 1 作为网址变量 [Google][1]. +这个链接用 yahoo 作为网址变量,鼠标悬停在连接地址上还有提示。 [Yahoo!][yahoo]. +这个链接用 stackoverflow 作为网址变量 [StackOverflow 博客][stackoverflow]. +然后在文档的结尾为变量赋值(网址) + + [1]: http://www.google.com/ + [yahoo]: http://www.yahoo.com/ "这是个雅虎首页" + [stackoverflow]: https://stackoverflow.blog/ +``` + +这个链接用 1 作为网址变量 [Google][1]. +这个链接用 yahoo 作为网址变量,鼠标悬停在连接地址上还有提示。 [Yahoo!][yahoo]. +这个链接用 stackoverflow 作为网址变量 [StackOverflow 博客][stackoverflow]. +然后在文档的结尾为变量赋值(网址) + + [1]: http://www.google.com/ + [yahoo]: http://www.yahoo.com/ "这是个雅虎首页" + [stackoverflow]: https://stackoverflow.blog/ + +## 内嵌代码编辑器支持 + +目前编辑器支持 [codepen.io](https://codepen.io/)、[jsfiddle.net](https://jsfiddle.net/)、[runjs.cn](http://runjs.cn) 三个网站。 + +### 编辑器 codepen.io 展示效果 + +直接将网址 `https://codepen.io/jaywcjlove/pen/ZWJVKy` 贴入 Markdown 中,出如下预览效果。 + +https://codepen.io/jaywcjlove/pen/ZWJVKy + +### 编辑器 codesandbox.io 展示效果 + +直接将网址 `https://codesandbox.io/s/jlomy0xoo5` 贴入 Markdown 中,出如下预览效果。 + +https://codesandbox.io/embed/jlomy0xoo5 + +### 编辑器 jsfiddle.net 展示效果 + +直接将网址 `https://jsfiddle.net/jaywcjlove/sxx57x6m/` 贴入 Markdown 中,出如下预览效果。 + +https://jsfiddle.net/jaywcjlove/sxx57x6m/ + +### 编辑器 runjs.cn 展示效果 + +直接将网址 `http://runjs.cn/code/yzfkxts2` 贴入 Markdown 中,出如下预览效果。 + +> runjs.cn 因为不是 `https` 站点,当你的 rdoc 生成的网站如果是 `https` 站点,浏览器会屏蔽 http 的 runjs.cn 站点嵌入 + +http://runjs.cn/code/yzfkxts2 + diff --git a/templates/default/introduce/guides/menu-sort.md b/templates/default/introduce/guides/menu-sort.md new file mode 100644 index 00000000..b0367126 --- /dev/null +++ b/templates/default/introduce/guides/menu-sort.md @@ -0,0 +1,52 @@ + + +我们通过在 `Markdown` 文件顶部,添加一段注释,添加`sort`参数,来配置菜单的顺序。 + +## 顶部菜单排序 + +顶部菜单是用过,运行命来来排序的,也可以使用 `sort` 参数来排序菜单。 + +**通过命令排序** + +```json +{ + "name": "doc-example", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "doc": "rdoc -d index,src/introduce,doc --clean" + }, + "license": "MIT" +} +``` + +上面 `package.json` 中的命令,可以排序 `顶部` 导航菜单顺序 `-d` 参数后面就是跟的目录,可以有顺序。 + +**通过Markdown配置设置排序** + +```shell +rdoc -d index,src/introduce,doc --clean +``` + +上面命令指定了 `index`、`src/introduce`、`doc` 三个目录,默认 `-c` 指向的目录 `src/component` 放在最后面,通过配置也可更换顺序,在每个根目录下面建立 `README.md` 文件,添加下面注释配置,通过 `sort` 参数设置数字,来指定位置。 + +```markdown + +``` + +## 二级菜单顺序 + +```markdown + + +Layout 布局组件说明 +``` diff --git a/templates/default/introduce/guides/theme.md b/templates/default/introduce/guides/theme.md new file mode 100644 index 00000000..871d269b --- /dev/null +++ b/templates/default/introduce/guides/theme.md @@ -0,0 +1,325 @@ + + +通过自定义主题来定义网站前端内容。下面定义主题的步骤: + +## 创建主题 + +```bash +mkdir create-react-doc-theme-load-react # 创建主题目录 +npm init -y # 生成配置文件 package.json +``` + +⚠️ 注意事项:主题必须以 `create-react-doc-theme-` 开头,否则会报错。 + +生成 `package.json` 内容: + +```json +{ + "name": "create-react-doc-theme-load-react", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "MIT" +} +``` + +## 添加主题文件 + +```bash +├── README.md # 说明文档 +├── lib # 主题文件编译后的文件 +├── package.json +└── src # 没有编译的js文件 +``` + +可以将默认主题拷贝到 `src` 目录中,基于[默认主题](https://github.com/jaywcjlove/rdoc/tree/master/theme/default)来改一个新的主题。 + +## 添加编译命令 + +主题文件建立好之后,通过 `babel` 来编译你的主题,将编译后的文件存储到 `lib` 目录中,添加编译命令,通过 `npm run build` 去编译你的代码。 + +安装依赖 + +```shell +npm install --save-dev babel-cli babel-core babel-eslint babel-plugin-syntax-dynamic-import babel-plugin-transform-async-to-generator babel-plugin-transform-class-properties babel-plugin-transform-object-rest-spread babel-plugin-transform-runtime babel-preset-env babel-preset-react +``` + + +```diff +{ + "name": "create-react-doc-theme-load-react", + "version": "1.0.0", + "description": "", ++ "main": "lib/index.js", +- "main": "index.js", + "scripts": { ++ "build": "BABEL_ENV=production babel --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", +- "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", ++ "devDependencies": { ++ "babel-cli": "^6.26.0", ++ "babel-core": "^6.26.3", ++ "babel-eslint": "^8.2.3", ++ "babel-plugin-syntax-dynamic-import": "^6.18.0", ++ "babel-plugin-transform-async-to-generator": "^6.24.1", ++ "babel-plugin-transform-class-properties": "^6.24.1", ++ "babel-plugin-transform-object-rest-spread": "^6.26.0", ++ "babel-plugin-transform-runtime": "^6.23.0", ++ "babel-preset-env": "^1.6.1" ++ }, + "license": "MIT" +} +``` + +添加babel配置文件 `.babelrc`。 + +```json +{ + "presets": [ + "env", + "react" + ], + "plugins": [ + "transform-object-rest-spread", + "syntax-dynamic-import", + "transform-async-to-generator", + "transform-class-properties", + "transform-runtime" + ] +} +``` + +通过运行命令编译主题 + +```bash +npm run build +``` + +## 添加实时编译命令 + +添加监听模式下开发你的主题,你不能写一句代码,运行一下 `npm run start` 去编译你的代码,要实时编译你的代码,所以你要添加一个实时编译参数。 + +```diff +{ + "name": "create-react-doc-theme-load-react", + "version": "1.0.0", + "description": "", + "main": "lib/index.js", + "scripts": { + "build": "BABEL_ENV=production babel --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", ++ "dev": "BABEL_ENV=production babel -w --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", ++ "start": "npm run dev" + }, + "keywords": [], + "author": "", + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-core": "^6.26.3", + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.1" + }, + "license": "MIT" +} +``` + +通过运行命令,实时编译主题 + +```bash +npm run start +``` + +## 添加代码检测 + +安装代码检测依赖工具 + +```bash +npm install --save-dev eslint eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-watch +``` + +添加对应的代码检测命令 + +```diff +{ + "name": "create-react-doc-theme-load-react", + "version": "1.0.0", + "description": "", + "main": "lib/index.js", + "scripts": { + "build": "BABEL_ENV=production babel --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", + "dev": "BABEL_ENV=production babel -w --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", +- "start": "npm run dev" ++ "start": "npm run dev & npm run lint:watch", ++ "lint": "NODE_ENV=production eslint src", ++ "lint:watch": "esw -w src", ++ "test": "npm run lint" + }, + "keywords": [], + "author": "", + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-core": "^6.26.3", + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.1", ++ "eslint": "^4.19.1", ++ "eslint-config-airbnb": "^16.1.0", ++ "eslint-plugin-import": "^2.11.0", ++ "eslint-plugin-jsx-a11y": "^6.0.3", ++ "eslint-plugin-react": "^7.7.0", ++ "eslint-watch": "^3.1.4" + }, + "license": "MIT" +} +``` + +添加代码检查 ESLint 的配置文件 `.babelrc`。 + +```json +{ + "parser": "babel-eslint", + "extends": "airbnb", + "env": { + "browser": true, + "node": true, + "es6": true, + "mocha": true, + "jest": true, + "jasmine": true + }, + "plugins": [ + "react", + "import" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": { + "linebreak-style": 0, + "func-names": 0, + "sort-imports": 0, + "arrow-body-style": 0, + "prefer-destructuring": 0, + "max-len": 0, + "consistent-return": 0, + "comma-dangle": [ "error", "always-multiline" ], + "function-paren-newline": 0, + "class-methods-use-this": 0, + "react/sort-comp": 0, + "react/prop-types": 0, + "react/jsx-first-prop-new-line": 0, + "react/require-extension": 0, + "react/jsx-filename-extension": [ 1, { "extensions": [ ".js", ".jsx" ] } ], + "import/extensions": 0, + "import/no-unresolved": 0, + "import/no-extraneous-dependencies": 0, + "import/prefer-default-export": 0, + "jsx-a11y/no-static-element-interactions": 0, + "jsx-a11y/anchor-has-content": 0, + "jsx-a11y/click-events-have-key-events": 0, + "jsx-a11y/anchor-is-valid": 0, + "jsx-a11y/label-has-for": 0, + "jsx-a11y/no-noninteractive-element-interactions": 0, + "jsx-a11y/mouse-events-have-key-events": 0, + "react/no-danger": 0, + "react/jsx-no-bind": 0, + "react/forbid-prop-types": 0, + "react/require-default-props": 0, + "react/no-did-mount-set-state": 0, + "react/no-array-index-key": 0, + "react/no-find-dom-node": 0, + "react/no-unused-state": 0, + "react/no-unused-prop-types": 0, + "react/default-props-match-prop-types": 0, + "react/jsx-curly-spacing": 0, + "react/no-render-return-value": 0, + "object-curly-newline": 0, + "no-param-reassign": 0, + "no-return-assign": 0, + "no-redeclare": 0, + "no-restricted-globals": 0, + "no-restricted-syntax": 0, + "no-underscore-dangle": 0, + "no-unused-expressions": 0 + } +} +``` + +## 开发模式调试主题 + +在你通过上面步骤建立的主题目录下运行命令 + +```bash +# 进入目录 +cd create-react-doc-theme-load-react +# 将 create-react-doc-theme-load-react 安装到全局目录中 +npm link +# /lib/node_modules/create-react-doc-theme-load-react -> ~/rdoc/create-react-doc-theme-load-react +``` + +生成一个 `create-react-doc` 文档工程 + +```bash +npm install -g create-react-doc # 全局安装 create-react-doc 工具 +create-react-doc init dochelp # 生成一个叫 dochelp 的工程 +``` + +安装你自定义的主题 `create-react-doc-theme-load-react` + +```bash +npm link create-react-doc-theme-load-react +``` + +在 `dochelp` 工程的 `package.json` 中添加配置 + +```diff +{ + "name": "dochelp", + "version": "1.0.0", + "description": "Describe create-react-doc-theme-load-react here", + "private": true, + "scripts": { + "deploy": "rdoc --publish ", + "build": "rdoc -d home,introduce,faq,about,github --clean --build", + "start": "rdoc -d home,introduce,faq,about,github --clean" + }, + "keywords": [], ++ "rdoc": { ++ "theme": "create-react-doc-theme-load-react" ++ }, + "dependencies": { + "rdoc": "1.4.x" + }, + "author": "", + "license": "MIT" +} +``` + +## 主题发布到npm + +如果主题发布到外网,你可以将主题作为一个依赖来使用主题,首先你需要注册一个账号 http://npmjs.org/ ,在命令行中登录你的账号,或者直接在命令行通过 `npm` 命令注册账号。 + +```bash +# 登录 npm 账号 +npm login +# 进入主题的根目录 +cd create-react-doc-theme-load-react +# 上传你的主题包,上传记得编译好你的主题哦 +npm publish +``` diff --git a/templates/default/introduce/guides/website.md b/templates/default/introduce/guides/website.md new file mode 100644 index 00000000..bf0c3408 --- /dev/null +++ b/templates/default/introduce/guides/website.md @@ -0,0 +1,54 @@ + + +通过一些配置定义网站一些内容如:标题、favicon、logo等。 + +## 网站标题 + +通过定义首页,在首页添加配置,配置 `title: 网站标题` 即可配置网站标题。 + +```markdown + + +下面是首页内容 +``` + +## favicon + +默认显示 rdoc 的图标,自定义 favicon 需要自己生成一个图标命名为 `favicon.ico` 放在项目的根目录,与 `package.json` 同级目录。 + +也可以在 `package.json` 中添加配置,如下: + +```js +{ + "rdoc": { + "favicon":"favicon.ico", + }, + ... +} +``` + +⚠️ 注意事项:这里只支持自定义 `.ico` 格式的图片logo,不接受其它格式。 + +## logo + +默认显示 rdoc 工具的 `logo`, 需要自定,有两种方法: + +> 1. 放入 Markdown 文档工程的根目录,命名`logo.svg` 即可。 +> 2. 在 `package.json` 中定义配置。 + +```js +{ + "rdoc": { + "logo":"rdoc.logo.svg", + }, + ... +} +``` + +⚠️ 注意事项:这里只支持自定义 `.svg` 格式的图片logo,不接受其它格式。 diff --git a/templates/default/introduce/init-project.md b/templates/default/introduce/init-project.md new file mode 100644 index 00000000..cad32bf6 --- /dev/null +++ b/templates/default/introduce/init-project.md @@ -0,0 +1,51 @@ + + +Create React Doc 是一个文档生成工具,用于生成文档网站或简单的博客网站。
简单到你只需写 Markdown 文件就可以帮助你生成网站。
同时可以方便的集成到你的项目工程中。 是一套基于基于 [Webpack](https://webpack.js.org/),[React](https://reactjs.org/),[React Router](https://reacttraining.com/react-router/web/guides/philosophy) 封装的文档生成工具,用于生成React组件库文档或博客网站, + +> 在开始之前,推荐先学习 Markdown语法,并正确安装和配置了 [Node.js](https://nodejs.org) v8.0 或以上。 + +下面教程,是最快速开始生成一个文档网站。你也可以通过 `入门` 一步一步配置一个初始工程。 + +1. 全局安装 + +```shell +$ npm install rdoc -g # 安装工具 +## /usr/local/bin/rdoc -> /usr/local/lib/node_modules/rdoc/.bin/rdoc.js +## /usr/local/bin/rdoc-cli -> /usr/local/lib/node_modules/rdoc/.bin/rdoc.js +``` + +2. 初始化工程 + +可以通过一条命令生成,一个初始文档网站工程。初始化工程,里面会包含一个 `package.json`,`rdoc` 工具会被当做依赖放入其中,避免 `rdoc` 工具升级带来的问题。 + +```shell +$ create-react-doc init my-project # 初始化项目 +## or +$ create-react-doc-cli init my-project +## 也可以使用 rdoc-cli 命令,跟 rdoc 命令是一样的 +## 增加 用 rdoc-cli 命令,目的是解决 Mac 系统自带的 Ruby 命令 rdoc 冲突 +``` + +3. 运行网站 + +初始化工程,其实就是 `rdoc` 工具的文档,里面 Markdown 都是写好的,直接运行下面命令,可看效果 + +```shell +$ cd my-project # 进入初始化的工程目录 +$ npm install # 安装依赖,这里依赖了 rdoc 版本,避免 rdoc 升级带来的问题。 +$ npm start # 启动服务 + +## Compiled successfully! +## +## You can now view rdoc in the browser. +## +## Local: http://localhost:5858/ +## On Your Network: http://192.168.188.109:5858/ +## Note that the development build is not optimized. +## To create a production build, use npm run build. +``` + +会自动打开网站,同时命令行会提示你,打开的网址,这样你就可以开始写 Markdown 了,并且可以实时预览你的网站。 diff --git a/templates/default/introduce/precautions.md b/templates/default/introduce/precautions.md new file mode 100644 index 00000000..bd4e7aa1 --- /dev/null +++ b/templates/default/introduce/precautions.md @@ -0,0 +1,16 @@ + + +⚠️ 在使用文档生成工具是,应注意一些事项,避免生成文档过程出现错误。 + +1. 文件与文件夹不能重名。 +2. 顶部菜单通过 `sort` 排序是无效的。 +5. HTML 中写 ` - - -## HTML Demo 预览 - -需要在代码块前后加上一段 ` ` 和 `` 注释即可,代码如下: - -``` - -\```html -
- Test Preview HTML Example. -
- -\``` - -``` - -下面是效果 - - -```html -
- Test Preview HTML Example. -
- -``` - - -目前只预览 `HTML`, 下面为 `LESS` 展示 - - -```less -.wrapper { - &::after { - content: ''; - display: block; - clear: both; - } -} - -.wrapperContent { - padding: 15px 0 0 0; - margin: 0px auto 0; -} -``` - diff --git a/templates/default/introduce/guides/insert-img.md b/templates/default/introduce/guides/insert-img.md deleted file mode 100644 index a70f9efb..00000000 --- a/templates/default/introduce/guides/insert-img.md +++ /dev/null @@ -1,75 +0,0 @@ - - -Markdown 文档内可以插入图片资源。 - -## 通过 Markdown 语法插入图片 - -Markdown 语法插入图片,将无法控制图片尺寸大小。 - -![react-logo](https://avatars1.githubusercontent.com/u/1680273?s=460&v=4) - -```markdown -![react-logo](https://avatars1.githubusercontent.com/u/1680273?s=460&v=4) -``` - -## HTML插入图片 - -通过HTML来引入图片显示,可以通过设置样式控制图片的尺寸大小 - - - - -```html - - -``` - -## 图片路径 - -这里图片路径有点特殊,所以在此做详细说明,假设,你的下目录如下: - -```shell -├── doc -│   ├── README.md -│   └── react -│   └── README.md -├── introduce -│   ├── api -│   │   └── menu-config.md -│   ├── assets -│   │   ├── react-logo.svg -│   │   └── webpack-logo.svg -│   └── precautions.md -├── package.json -└── src - └── component -``` - -配置运行命令如下: - -```shell -$ rdoc -d doc,introduce -``` - -现在你的目录 `introduce/assets` 下面有两个图片 `react-logo.svg`、`webpack-logo.svg`,你需要在 `doc/react/README.md` Markdown 文件中 访问这两张图片,此时你的访问路径应该是,相对于 `introduce` 目录下找到图片,图片引用如下: - -```markdown -![react-logo](./assets/react-logo.svg) -``` - -因为你上面命令配置了三个根目录文件夹,`introduce`文件夹是其中之一,所以路径不包含根目录。 - -现在假设,你在 `introduce` 当前目录的 `introduce/api/menu-config.md` Markdown 文件中访问 `introduce/assets` 文件夹下面的 `webpack-logo.svg` 图片,这个时候,两个资源都在同一个根目录下,图片引用如下,跟上面一样的路径: - -```markdown -![react-logo](./assets/react-logo.svg) -``` - -这个时候你也可以相对于 `menu-config.md` Markdown 文件,路径如下: - -```markdown -![react-logo](../assets/react-logo.svg) -``` diff --git a/templates/default/introduce/guides/link.md b/templates/default/introduce/guides/link.md deleted file mode 100644 index 4cff38c3..00000000 --- a/templates/default/introduce/guides/link.md +++ /dev/null @@ -1,68 +0,0 @@ - - -目前 create-react-doc 支持 Markdown 连接,同时支持代码编辑器预览。 - -## Markdown 语法连接 - -### 常用链接方法 - -```markdown -文字链接 [链接名称](http://链接网址) -网址链接 -``` - -### 高级链接技巧 - -```markdown -这个链接用 1 作为网址变量 [Google][1]. -这个链接用 yahoo 作为网址变量,鼠标悬停在连接地址上还有提示。 [Yahoo!][yahoo]. -这个链接用 stackoverflow 作为网址变量 [StackOverflow 博客][stackoverflow]. -然后在文档的结尾为变量赋值(网址) - - [1]: http://www.google.com/ - [yahoo]: http://www.yahoo.com/ "这是个雅虎首页" - [stackoverflow]: https://stackoverflow.blog/ -``` - -这个链接用 1 作为网址变量 [Google][1]. -这个链接用 yahoo 作为网址变量,鼠标悬停在连接地址上还有提示。 [Yahoo!][yahoo]. -这个链接用 stackoverflow 作为网址变量 [StackOverflow 博客][stackoverflow]. -然后在文档的结尾为变量赋值(网址) - - [1]: http://www.google.com/ - [yahoo]: http://www.yahoo.com/ "这是个雅虎首页" - [stackoverflow]: https://stackoverflow.blog/ - -## 内嵌代码编辑器支持 - -目前编辑器支持 [codepen.io](https://codepen.io/)、[jsfiddle.net](https://jsfiddle.net/)、[runjs.cn](http://runjs.cn) 三个网站。 - -### 编辑器 codepen.io 展示效果 - -直接将网址 `https://codepen.io/jaywcjlove/pen/ZWJVKy` 贴入 Markdown 中,出如下预览效果。 - -https://codepen.io/jaywcjlove/pen/ZWJVKy - -### 编辑器 codesandbox.io 展示效果 - -直接将网址 `https://codesandbox.io/s/jlomy0xoo5` 贴入 Markdown 中,出如下预览效果。 - -https://codesandbox.io/embed/jlomy0xoo5 - -### 编辑器 jsfiddle.net 展示效果 - -直接将网址 `https://jsfiddle.net/jaywcjlove/sxx57x6m/` 贴入 Markdown 中,出如下预览效果。 - -https://jsfiddle.net/jaywcjlove/sxx57x6m/ - -### 编辑器 runjs.cn 展示效果 - -直接将网址 `http://runjs.cn/code/yzfkxts2` 贴入 Markdown 中,出如下预览效果。 - -> runjs.cn 因为不是 `https` 站点,当你的 rdoc 生成的网站如果是 `https` 站点,浏览器会屏蔽 http 的 runjs.cn 站点嵌入 - -http://runjs.cn/code/yzfkxts2 - diff --git a/templates/default/introduce/guides/menu-sort.md b/templates/default/introduce/guides/menu-sort.md deleted file mode 100644 index b62858c4..00000000 --- a/templates/default/introduce/guides/menu-sort.md +++ /dev/null @@ -1,52 +0,0 @@ - - -我们通过在 `Markdown` 文件顶部,添加一段注释,添加`sort`参数,来配置菜单的顺序。 - -## 顶部菜单排序 - -顶部菜单是用过,运行命来来排序的,也可以使用 `sort` 参数来排序菜单。 - -**通过命令排序** - -```json -{ - "name": "doc-example", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "doc": "create-react-doc -d index,src/introduce,doc" - }, - "license": "MIT" -} -``` - -上面 `package.json` 中的命令,可以排序 `顶部` 导航菜单顺序 `-d` 参数后面就是跟的目录,可以有顺序。 - -**通过Markdown配置设置排序** - -```shell -create-react-doc -d index,src/introduce,doc -``` - -上面命令指定了 `index`、`src/introduce`、`doc` 三个目录,默认 `-c` 指向的目录 `src/component` 放在最后面,通过配置也可更换顺序,在每个根目录下面建立 `README.md` 文件,添加下面注释配置,通过 `sort` 参数设置数字,来指定位置。 - -```markdown - -``` - -## 二级菜单顺序 - -```markdown - - -Layout 布局组件说明 -``` diff --git a/templates/default/introduce/guides/theme.md b/templates/default/introduce/guides/theme.md deleted file mode 100644 index 7b3647cc..00000000 --- a/templates/default/introduce/guides/theme.md +++ /dev/null @@ -1,325 +0,0 @@ - - -通过自定义主题来定义网站前端内容。下面定义主题的步骤: - -## 创建主题 - -```bash -mkdir create-react-doc-theme-load-react # 创建主题目录 -npm init -y # 生成配置文件 package.json -``` - -⚠️ 注意事项:主题必须以 `create-react-doc-theme-` 开头,否则会报错。 - -生成 `package.json` 内容: - -```json -{ - "name": "create-react-doc-theme-load-react", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "MIT" -} -``` - -## 添加主题文件 - -```bash -├── README.md # 说明文档 -├── lib # 主题文件编译后的文件 -├── package.json -└── src # 没有编译的js文件 -``` - -可以将默认主题拷贝到 `src` 目录中,基于[默认主题](https://github.com/jaywcjlove/rdoc/tree/master/theme/default)来改一个新的主题。 - -## 添加编译命令 - -主题文件建立好之后,通过 `babel` 来编译你的主题,将编译后的文件存储到 `lib` 目录中,添加编译命令,通过 `npm run build` 去编译你的代码。 - -安装依赖 - -```shell -npm install --save-dev babel-cli babel-core babel-eslint babel-plugin-syntax-dynamic-import babel-plugin-transform-async-to-generator babel-plugin-transform-class-properties babel-plugin-transform-object-rest-spread babel-plugin-transform-runtime babel-preset-env babel-preset-react -``` - - -```diff -{ - "name": "create-react-doc-theme-load-react", - "version": "1.0.0", - "description": "", -+ "main": "lib/index.js", -- "main": "index.js", - "scripts": { -+ "build": "BABEL_ENV=production babel --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", -- "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", -+ "devDependencies": { -+ "babel-cli": "^6.26.0", -+ "babel-core": "^6.26.3", -+ "babel-eslint": "^8.2.3", -+ "babel-plugin-syntax-dynamic-import": "^6.18.0", -+ "babel-plugin-transform-async-to-generator": "^6.24.1", -+ "babel-plugin-transform-class-properties": "^6.24.1", -+ "babel-plugin-transform-object-rest-spread": "^6.26.0", -+ "babel-plugin-transform-runtime": "^6.23.0", -+ "babel-preset-env": "^1.6.1" -+ }, - "license": "MIT" -} -``` - -添加babel配置文件 `.babelrc`。 - -```json -{ - "presets": [ - "env", - "react" - ], - "plugins": [ - "transform-object-rest-spread", - "syntax-dynamic-import", - "transform-async-to-generator", - "transform-class-properties", - "transform-runtime" - ] -} -``` - -通过运行命令编译主题 - -```bash -npm run build -``` - -## 添加实时编译命令 - -添加监听模式下开发你的主题,你不能写一句代码,运行一下 `npm run start` 去编译你的代码,要实时编译你的代码,所以你要添加一个实时编译参数。 - -```diff -{ - "name": "create-react-doc-theme-load-react", - "version": "1.0.0", - "description": "", - "main": "lib/index.js", - "scripts": { - "build": "BABEL_ENV=production babel --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", -+ "dev": "BABEL_ENV=production babel -w --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", -+ "start": "npm run dev" - }, - "keywords": [], - "author": "", - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-core": "^6.26.3", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-preset-env": "^1.6.1" - }, - "license": "MIT" -} -``` - -通过运行命令,实时编译主题 - -```bash -npm run start -``` - -## 添加代码检测 - -安装代码检测依赖工具 - -```bash -npm install --save-dev eslint eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-watch -``` - -添加对应的代码检测命令 - -```diff -{ - "name": "create-react-doc-theme-load-react", - "version": "1.0.0", - "description": "", - "main": "lib/index.js", - "scripts": { - "build": "BABEL_ENV=production babel --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", - "dev": "BABEL_ENV=production babel -w --ignore=src/**/__test__ --plugins transform-runtime src --out-dir lib --copy-files ", -- "start": "npm run dev" -+ "start": "npm run dev & npm run lint:watch", -+ "lint": "NODE_ENV=production eslint src", -+ "lint:watch": "esw -w src", -+ "test": "npm run lint" - }, - "keywords": [], - "author": "", - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-core": "^6.26.3", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-preset-env": "^1.6.1", -+ "eslint": "^4.19.1", -+ "eslint-config-airbnb": "^16.1.0", -+ "eslint-plugin-import": "^2.11.0", -+ "eslint-plugin-jsx-a11y": "^6.0.3", -+ "eslint-plugin-react": "^7.7.0", -+ "eslint-watch": "^3.1.4" - }, - "license": "MIT" -} -``` - -添加代码检查 ESLint 的配置文件 `.babelrc`。 - -```json -{ - "parser": "babel-eslint", - "extends": "airbnb", - "env": { - "browser": true, - "node": true, - "es6": true, - "mocha": true, - "jest": true, - "jasmine": true - }, - "plugins": [ - "react", - "import" - ], - "parserOptions": { - "parser": "babel-eslint" - }, - "rules": { - "linebreak-style": 0, - "func-names": 0, - "sort-imports": 0, - "arrow-body-style": 0, - "prefer-destructuring": 0, - "max-len": 0, - "consistent-return": 0, - "comma-dangle": [ "error", "always-multiline" ], - "function-paren-newline": 0, - "class-methods-use-this": 0, - "react/sort-comp": 0, - "react/prop-types": 0, - "react/jsx-first-prop-new-line": 0, - "react/require-extension": 0, - "react/jsx-filename-extension": [ 1, { "extensions": [ ".js", ".jsx" ] } ], - "import/extensions": 0, - "import/no-unresolved": 0, - "import/no-extraneous-dependencies": 0, - "import/prefer-default-export": 0, - "jsx-a11y/no-static-element-interactions": 0, - "jsx-a11y/anchor-has-content": 0, - "jsx-a11y/click-events-have-key-events": 0, - "jsx-a11y/anchor-is-valid": 0, - "jsx-a11y/label-has-for": 0, - "jsx-a11y/no-noninteractive-element-interactions": 0, - "jsx-a11y/mouse-events-have-key-events": 0, - "react/no-danger": 0, - "react/jsx-no-bind": 0, - "react/forbid-prop-types": 0, - "react/require-default-props": 0, - "react/no-did-mount-set-state": 0, - "react/no-array-index-key": 0, - "react/no-find-dom-node": 0, - "react/no-unused-state": 0, - "react/no-unused-prop-types": 0, - "react/default-props-match-prop-types": 0, - "react/jsx-curly-spacing": 0, - "react/no-render-return-value": 0, - "object-curly-newline": 0, - "no-param-reassign": 0, - "no-return-assign": 0, - "no-redeclare": 0, - "no-restricted-globals": 0, - "no-restricted-syntax": 0, - "no-underscore-dangle": 0, - "no-unused-expressions": 0 - } -} -``` - -## 开发模式调试主题 - -在你通过上面步骤建立的主题目录下运行命令 - -```bash -# 进入目录 -cd create-react-doc-theme-load-react -# 将 create-react-doc-theme-load-react 安装到全局目录中 -npm link -# /lib/node_modules/create-react-doc-theme-load-react -> ~/rdoc/create-react-doc-theme-load-react -``` - -生成一个 `create-react-doc` 文档工程 - -```bash -npm install -g create-react-doc # 全局安装 create-react-doc 工具 -create-react-doc init dochelp # 生成一个叫 dochelp 的工程 -``` - -安装你自定义的主题 `create-react-doc-theme-load-react` - -```bash -npm link create-react-doc-theme-load-react -``` - -在 `dochelp` 工程的 `package.json` 中添加配置 - -```diff -{ - "name": "dochelp", - "version": "1.0.0", - "description": "Describe create-react-doc-theme-load-react here", - "private": true, - "scripts": { - "deploy": "rdoc --publish ", - "build": "rdoc -d home,introduce,faq,about,github --build", - "start": "rdoc -d home,introduce,faq,about,github" - }, - "keywords": [], -+ "rdoc": { -+ "theme": "create-react-doc-theme-load-react" -+ }, - "dependencies": { - "rdoc": "1.4.x" - }, - "author": "", - "license": "MIT" -} -``` - -## 主题发布到npm - -如果主题发布到外网,你可以将主题作为一个依赖来使用主题,首先你需要注册一个账号 http://npmjs.org/ ,在命令行中登录你的账号,或者直接在命令行通过 `npm` 命令注册账号。 - -```bash -# 登录 npm 账号 -npm login -# 进入主题的根目录 -cd create-react-doc-theme-load-react -# 上传你的主题包,上传记得编译好你的主题哦 -npm publish -``` diff --git a/templates/default/introduce/guides/website.md b/templates/default/introduce/guides/website.md deleted file mode 100644 index 9a6ecde2..00000000 --- a/templates/default/introduce/guides/website.md +++ /dev/null @@ -1,54 +0,0 @@ - - -通过一些配置定义网站一些内容如:标题、favicon、logo等。 - -## 网站标题 - -通过定义首页,在首页添加配置,配置 `title: 网站标题` 即可配置网站标题。 - -```markdown - - -下面是首页内容 -``` - -## favicon - -默认显示 rdoc 的图标,自定义 favicon 需要自己生成一个图标命名为 `favicon.ico` 放在项目的根目录,与 `package.json` 同级目录。 - -也可以在 `package.json` 中添加配置,如下: - -```js -{ - "rdoc": { - "favicon":"favicon.ico", - }, - ... -} -``` - -⚠️ 注意事项:这里只支持自定义 `.ico` 格式的图片logo,不接受其它格式。 - -## logo - -默认显示 rdoc 工具的 `logo`, 需要自定,有两种方法: - -> 1. 放入 Markdown 文档工程的根目录,命名`logo.svg` 即可。 -> 2. 在 `package.json` 中定义配置。 - -```js -{ - "rdoc": { - "logo":"crd.logo.svg", - }, - ... -} -``` - -⚠️ 注意事项:这里只支持自定义 `.svg` 格式的图片logo,不接受其它格式。 diff --git a/templates/default/introduce/init-project.md b/templates/default/introduce/init-project.md deleted file mode 100644 index c40899b4..00000000 --- a/templates/default/introduce/init-project.md +++ /dev/null @@ -1,51 +0,0 @@ - - -Create React Doc 是一个文档生成工具,用于生成文档网站或简单的博客网站。
简单到你只需写 Markdown 文件就可以帮助你生成网站。
同时可以方便的集成到你的项目工程中。 是一套基于基于 [Webpack](https://webpack.js.org/),[React](https://reactjs.org/),[React Router](https://reacttraining.com/react-router/web/guides/philosophy) 封装的文档生成工具,用于生成React组件库文档或博客网站, - -> 在开始之前,推荐先学习 Markdown语法,并正确安装和配置了 [Node.js](https://nodejs.org) v8.0 或以上。 - -下面教程,是最快速开始生成一个文档网站。你也可以通过 `入门` 一步一步配置一个初始工程。 - -1. 全局安装 - -```shell -$ npm install rdoc -g # 安装工具 -## /usr/local/bin/rdoc -> /usr/local/lib/node_modules/rdoc/.bin/rdoc.js -## /usr/local/bin/rdoc-cli -> /usr/local/lib/node_modules/rdoc/.bin/rdoc.js -``` - -2. 初始化工程 - -可以通过一条命令生成,一个初始文档网站工程。初始化工程,里面会包含一个 `package.json`,`rdoc` 工具会被当做依赖放入其中,避免 `rdoc` 工具升级带来的问题。 - -```shell -$ react-doc init my-project # 初始化项目 -## or -$ react-doc-cli init my-project -## 也可以使用 rdoc-cli 命令,跟 rdoc 命令是一样的 -## 增加 用 rdoc-cli 命令,目的是解决 Mac 系统自带的 Ruby 命令 rdoc 冲突 -``` - -3. 运行网站 - -初始化工程,其实就是 `rdoc` 工具的文档,里面 Markdown 都是写好的,直接运行下面命令,可看效果 - -```shell -$ cd my-project # 进入初始化的工程目录 -$ npm install # 安装依赖,这里依赖了 rdoc 版本,避免 rdoc 升级带来的问题。 -$ npm start # 启动服务 - -## Compiled successfully! -## -## You can now view rdoc in the browser. -## -## Local: http://localhost:3000/ -## On Your Network: http://192.168.188.109:3000/ -## Note that the development build is not optimized. -## To create a production build, use npm run build. -``` - -会自动打开网站,同时命令行会提示你,打开的网址,这样你就可以开始写 Markdown 了,并且可以实时预览你的网站。 diff --git a/templates/default/introduce/precautions.md b/templates/default/introduce/precautions.md deleted file mode 100644 index c633941a..00000000 --- a/templates/default/introduce/precautions.md +++ /dev/null @@ -1,16 +0,0 @@ - - -⚠️ 在使用文档生成工具是,应注意一些事项,避免生成文档过程出现错误。 - -1. 文件与文件夹不能重名。 -2. 顶部菜单通过 `sort` 排序是无效的。 -5. HTML 中写 ` + From d3bac7422b34226d39d29d6c92952367bb9a74d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jan 2021 05:27:42 +0000 Subject: [PATCH 182/352] chore(deps): bump highlight.js from 9.18.3 to 10.5.0 Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 9.18.3 to 10.5.0. - [Release notes](https://github.com/highlightjs/highlight.js/releases) - [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md) - [Commits](https://github.com/highlightjs/highlight.js/commits/10.5.0) Signed-off-by: dependabot[bot] --- packages/scripts/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/scripts/package.json b/packages/scripts/package.json index cd8982a1..78628b0c 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -32,7 +32,7 @@ "file-loader": "^1.1.11", "fs-extra": "^5.0.0", "gh-pages": "^1.2.0", - "highlight.js": "^9.12.0", + "highlight.js": "^10.5.0", "html-webpack-plugin": "^4.5.1", "js-yaml": "^3.14.0", "less-loader": "^7.2.1", diff --git a/yarn.lock b/yarn.lock index e5e1a5e1..03cc85db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5893,10 +5893,10 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^9.12.0: - version "9.18.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" - integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== +highlight.js@^10.5.0: + version "10.5.0" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" + integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw== history@^4.7.2: version "4.10.1" From 4642b48538d299c3974534b76b989f3a624ebc19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Feb 2021 10:55:36 +0000 Subject: [PATCH 183/352] chore(deps): bump ini from 1.3.5 to 1.3.8 Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 03cc85db..ac83c38a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6265,9 +6265,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.2, ini@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^1.10.3: version "1.10.3" From 973d9735e6c178fe43fc008d923ebc4633235c75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Jan 2021 05:39:18 +0000 Subject: [PATCH 184/352] chore(deps): bump highlight.js in /packages/create-react-doc Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 9.18.1 to 9.18.5. - [Release notes](https://github.com/highlightjs/highlight.js/releases) - [Changelog](https://github.com/highlightjs/highlight.js/blob/9.18.5/CHANGES.md) - [Commits](https://github.com/highlightjs/highlight.js/compare/9.18.1...9.18.5) Signed-off-by: dependabot[bot] --- packages/create-react-doc/yarn.lock | 3160 +++++---------------------- 1 file changed, 572 insertions(+), 2588 deletions(-) diff --git a/packages/create-react-doc/yarn.lock b/packages/create-react-doc/yarn.lock index 26819a8a..3109ab1a 100644 --- a/packages/create-react-doc/yarn.lock +++ b/packages/create-react-doc/yarn.lock @@ -1009,14 +1009,6 @@ "@babel/plugin-transform-react-jsx-source" "^7.10.1" "@babel/plugin-transform-react-pure-annotations" "^7.10.1" -"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.8.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz#931ed6941d3954924a7aa967ee440e60c507b91a" - integrity sha512-HA7RPj5xvJxQl429r5Cxr2trJwOfPjKiqhCXcdQPSqO2G0RHPZpXu4fkYmBaTKCp2c/jRaMK9GB/lN+7zvvFPw== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.8.4": version "7.10.1" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.1.tgz#b6eb75cac279588d3100baecd1b9894ea2840822" @@ -1024,7 +1016,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.3.4": +"@babel/runtime@^7.3.4": version "7.10.3" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz#670d002655a7c366540c67f6fd3342cd09500364" integrity sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw== @@ -1132,18 +1124,21 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== +"@eslint/eslintrc@^0.2.2": + version "0.2.2" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" + integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" "@nuxtjs/friendly-errors-webpack-plugin@^2.0.2": version "2.1.0" @@ -1155,58 +1150,6 @@ string-width "^2.0.0" strip-ansi "^4.0.0" -"@octokit/endpoint@^4.0.0": - version "4.2.2" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-4.2.2.tgz#4ff11382bad89c7e01030a1e62d5e9d13c2402b0" - integrity sha512-5IZjkUNhx5q0IRN7Juwf5A+Lu2qAso7ULST7C1P2mbGHePuCOk936Stcl/5GdJpB3ovD8M6/Lv3xra6Mn0IKNQ== - dependencies: - deepmerge "3.2.0" - is-plain-object "^3.0.0" - universal-user-agent "^2.0.1" - url-template "^2.0.8" - -"@octokit/request@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@octokit/request/-/request-3.0.0.tgz#304a279036b2dc89e7fba7cb30c9e6a9b1f4d2df" - integrity sha512-DZqmbm66tq+a9FtcKrn0sjrUpi0UaZ9QPUCxxyk/4CJ2rseTMpAWRf6gCwOSUCzZcx/4XVIsDk+kz5BVdaeenA== - dependencies: - "@octokit/endpoint" "^4.0.0" - deprecation "^1.0.1" - is-plain-object "^2.0.4" - node-fetch "^2.3.0" - once "^1.4.0" - universal-user-agent "^2.0.1" - -"@octokit/rest@16.25.0": - version "16.25.0" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-16.25.0.tgz#1111dc2b2058bc77442fd7fbd295dab3991b62bf" - integrity sha512-QKIzP0gNYjyIGmY3Gpm3beof0WFwxFR+HhRZ+Wi0fYYhkEUvkJiXqKF56Pf5glzzfhEwOrggfluEld5F/ZxsKw== - dependencies: - "@octokit/request" "3.0.0" - atob-lite "^2.0.0" - before-after-hook "^1.4.0" - btoa-lite "^1.0.0" - deprecation "^1.0.1" - lodash.get "^4.4.2" - lodash.set "^4.3.2" - lodash.uniq "^4.5.0" - octokit-pagination-methods "^1.1.0" - once "^1.4.0" - universal-user-agent "^2.0.0" - url-template "^2.0.8" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" @@ -1231,31 +1174,16 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - "@types/minimatch@*": version "3.0.3" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/minimist@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" - integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= - "@types/node@*": version "14.0.6" resolved "https://registry.npmjs.org/@types/node/-/node-14.0.6.tgz#f9e178b2da31a4b0ec60b64649e244c31ce18daf" integrity sha512-FbNmu4F67d3oZMWBV6Y4MaPER+0EpE9eIYf2yaHhCWovc1dlXCZkqGX4NLHfVVr6umt20TNBdRzrNJIzIKfdbw== -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -1411,14 +1339,6 @@ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -1427,28 +1347,21 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - -acorn@^5.5.0: - version "5.7.4" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn@^6.4.1: version "6.4.1" resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + address@^1.0.1: version "1.1.2" resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -1459,17 +1372,12 @@ ajv-errors@^1.0.0: resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= - ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: version "3.4.1" resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.0.0: version "5.5.2" resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= @@ -1489,27 +1397,40 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" + integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= - dependencies: - string-width "^2.0.0" - ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.2.1: version "4.3.1" @@ -1563,6 +1484,13 @@ ansi-styles@^4.0.0: "@types/color-name" "^1.1.1" color-convert "^2.0.1" +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1591,14 +1519,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -1614,11 +1534,6 @@ arr-union@^3.1.0: resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1629,21 +1544,7 @@ array-flatten@^2.1.0: resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= - -array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - is-string "^1.0.5" - -array-union@^1.0.1, array-union@^1.0.2: +array-union@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= @@ -1660,24 +1561,6 @@ array-unique@^0.3.2: resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - asap@~2.0.3: version "2.0.6" resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -1717,10 +1600,10 @@ assign-symbols@^1.0.0: resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-each@^1.0.1: version "1.0.3" @@ -1732,13 +1615,6 @@ async-limiter@~1.0.0: resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-retry@1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" - integrity sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q== - dependencies: - retry "0.12.0" - async@2.6.1: version "2.6.1" resolved "https://registry.npmjs.org/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" @@ -1758,11 +1634,6 @@ asynckit@^0.4.0: resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob-lite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" - integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= - atob@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -1790,17 +1661,7 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== -axe-core@^3.5.4: - version "3.5.5" - resolved "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz#84315073b53fa3c0c51676c588d59da09a192227" - integrity sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q== - -axobject-query@^2.1.2: - version "2.2.0" - resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -1889,11 +1750,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" - integrity sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg== - big.js@^3.1.3: version "3.2.0" resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -1969,19 +1825,6 @@ boolbase@~1.0.0: resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2097,11 +1940,6 @@ browserslist@^4.12.0, browserslist@^4.8.5: escalade "^3.0.1" node-releases "^1.1.58" -btoa-lite@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" - integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= - buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -2131,14 +1969,6 @@ builtin-status-codes@^3.0.0: resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -bump-file@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/bump-file/-/bump-file-2.0.0.tgz#171475dc8a4ab0bd8ce8469860337446eb886fb5" - integrity sha512-Kt2FoAljRS630vFx+asbCBiCp1PqaJ2PuCby+P+Fl8LMsUnGaxw/C2YxxQe4SiCJBs3Zt8A28u3wQRwnYMtuUw== - dependencies: - detect-indent "5.0.0" - semver "5.4.1" - bytes@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -2185,24 +2015,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -2210,13 +2022,6 @@ caller-callsite@^2.0.0: dependencies: callsites "^2.0.0" -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - dependencies: - callsites "^0.2.0" - caller-path@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" @@ -2224,16 +2029,16 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= - callsites@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + camel-case@3.0.x: version "3.0.0" resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" @@ -2242,52 +2047,11 @@ camel-case@3.0.x: no-case "^2.2.0" upper-case "^1.1.1" -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^4.0.0, camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.0.0: version "5.3.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" - integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== - caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" @@ -2308,25 +2072,11 @@ caniuse-lite@^1.0.30001088: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz#23a6b9e192106107458528858f2c0e0dba0d9073" integrity sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg== -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -2338,6 +2088,23 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -2353,16 +2120,6 @@ character-reference-invalid@^1.0.0: resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - chokidar@^2.1.8: version "2.1.8" resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -2409,16 +2166,11 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" -ci-info@^1.5.0, ci-info@^1.6.0: +ci-info@^1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2427,11 +2179,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - clap@^1.0.9: version "1.2.3" resolved "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" @@ -2461,28 +2208,6 @@ clean-css@4.2.x: dependencies: source-map "~0.6.0" -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-spinners@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" - integrity sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w== - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cliui@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -2492,13 +2217,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -2610,7 +2328,7 @@ commander@2.17.x: resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.12.2, commander@^2.20.0, commander@~2.20.3: +commander@^2.12.2, commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2630,14 +2348,6 @@ commondir@^1.0.1: resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-func@^1.3.1: - version "1.3.4" - resolved "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz#6b07c4c5e8341119baf44578085bda0f4a823516" - integrity sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q== - dependencies: - array-ify "^1.0.0" - dot-prop "^3.0.0" - component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -2668,7 +2378,7 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -2678,28 +2388,6 @@ concat-stream@^1.5.0, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -2720,11 +2408,6 @@ constants-browserify@^1.0.0: resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -2737,164 +2420,6 @@ content-type@~1.0.4: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -conventional-changelog-angular@^5.0.3: - version "5.0.10" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz#5cf7b00dd315b6a6a558223c80d5ef24ddb34205" - integrity sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA== - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-atom@^2.0.1: - version "2.0.7" - resolved "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.7.tgz#221575253a04f77a2fd273eb2bf29a138f710abf" - integrity sha512-7dOREZwzB+tCEMjRTDfen0OHwd7vPUdmU0llTy1eloZgtOP4iSLVzYIQqfmdRZEty+3w5Jz+AbhfTJKoKw1JeQ== - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^2.0.1: - version "2.0.7" - resolved "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.7.tgz#d6b6a8ce2707710c5a036e305037547fb9e15bfb" - integrity sha512-Oralk1kiagn3Gb5cR5BffenWjVu59t/viE6UMD/mQa1hISMPkMYhJIqX+CMeA1zXgVBO+YHQhhokEj99GP5xcg== - dependencies: - q "^1.5.1" - -conventional-changelog-conventionalcommits@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-1.1.2.tgz#bb30c8d40dbd13ba9ec4e9bc6a025578b31b17bd" - integrity sha512-t8VyibJHGrtsDwSHjgpW9v7oBbqDGQooCMo/a2rc0z5cousV5O11palcSPpyshEVWVijxPtzBNG02EQkMDJ8CA== - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-core@^3.2.2: - version "3.2.3" - resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" - integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== - dependencies: - conventional-changelog-writer "^4.0.6" - conventional-commits-parser "^3.0.3" - dateformat "^3.0.0" - get-pkg-repo "^1.0.0" - git-raw-commits "2.0.0" - git-remote-origin-url "^2.0.0" - git-semver-tags "^2.0.3" - lodash "^4.2.1" - normalize-package-data "^2.3.5" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - through2 "^3.0.0" - -conventional-changelog-ember@^2.0.2: - version "2.0.8" - resolved "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.8.tgz#f0f04eb7ff3c885af97db100865ab95dcfa9917f" - integrity sha512-JEMEcUAMg4Q9yxD341OgWlESQ4gLqMWMXIWWUqoQU8yvTJlKnrvcui3wk9JvnZQyONwM2g1MKRZuAjKxr8hAXA== - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^3.0.2: - version "3.0.8" - resolved "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.8.tgz#f8b952b7ed7253ea0ac0b30720bb381f4921b46c" - integrity sha512-5rTRltgWG7TpU1PqgKHMA/2ivjhrB+E+S7OCTvj0zM/QGg4vmnVH67Vq/EzvSNYtejhWC+OwzvDrLk3tqPry8A== - dependencies: - q "^1.5.1" - -conventional-changelog-express@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.5.tgz#6e93705acdad374516ca125990012a48e710f8de" - integrity sha512-pW2hsjKG+xNx/Qjof8wYlAX/P61hT5gQ/2rZ2NsTpG+PgV7Rc8RCfITvC/zN9K8fj0QmV6dWmUefCteD9baEAw== - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^3.0.4: - version "3.0.6" - resolved "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.6.tgz#460236ad8fb1d29ff932a14fe4e3a45379b63c5e" - integrity sha512-gHAABCXUNA/HjnZEm+vxAfFPJkgtrZvCDIlCKfdPVXtCIo/Q0lN5VKpx8aR5p8KdVRQFF3OuTlvv5kv6iPuRqA== - dependencies: - q "^1.5.1" - -conventional-changelog-jshint@^2.0.1: - version "2.0.7" - resolved "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.7.tgz#955a69266951cd31e8afeb3f1c55e0517fdca943" - integrity sha512-qHA8rmwUnLiIxANJbz650+NVzqDIwNtc0TcpIa0+uekbmKHttidvQ1dGximU3vEDdoJVKFgR3TXFqYuZmYy9ZQ== - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-preset-loader@^2.1.1: - version "2.3.4" - resolved "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" - integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== - -conventional-changelog-writer@^4.0.6: - version "4.0.16" - resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.16.tgz#ca10f2691a8ea6d3c2eb74bd35bcf40aa052dda5" - integrity sha512-jmU1sDJDZpm/dkuFxBeRXvyNcJQeKhGtVcFFkwTphUAzyYWcwz2j36Wcv+Mv2hU3tpvLMkysOPXJTLO55AUrYQ== - dependencies: - compare-func "^1.3.1" - conventional-commits-filter "^2.0.6" - dateformat "^3.0.0" - handlebars "^4.7.6" - json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^7.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^3.0.0" - -conventional-changelog@3.1.4: - version "3.1.4" - resolved "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.4.tgz#66db29830a799be9afcbfd67a366c1e2cbc21417" - integrity sha512-uMeTSzEb2oKFlL00Oh9j3+00PFq1MNneLzyy0TBftxo4PFrs7OiaRJXmXtEgSvJDdkc0RSd6ch2N+yTxPagZ0A== - dependencies: - conventional-changelog-angular "^5.0.3" - conventional-changelog-atom "^2.0.1" - conventional-changelog-codemirror "^2.0.1" - conventional-changelog-conventionalcommits "^1.1.2" - conventional-changelog-core "^3.2.2" - conventional-changelog-ember "^2.0.2" - conventional-changelog-eslint "^3.0.2" - conventional-changelog-express "^2.0.1" - conventional-changelog-jquery "^3.0.4" - conventional-changelog-jshint "^2.0.1" - conventional-changelog-preset-loader "^2.1.1" - -conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz#0935e1240c5ca7698329affee1b6a46d33324c4c" - integrity sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw== - dependencies: - lodash.ismatch "^4.4.0" - modify-values "^1.0.0" - -conventional-commits-parser@^3.0.2, conventional-commits-parser@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" - integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^7.0.0" - split2 "^2.0.0" - through2 "^3.0.0" - trim-off-newlines "^1.0.0" - -conventional-recommended-bump@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.1.1.tgz#37014fadeda267d0607e2fc81124da840a585127" - integrity sha512-JT2vKfSP9kR18RXXf55BRY1O3AHG8FPg5btP3l7LYfcWJsiXI6MCf30DepQ98E8Qhowvgv7a8iev0J1bEDkTFA== - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.1.1" - conventional-commits-filter "^2.0.2" - conventional-commits-parser "^3.0.2" - git-raw-commits "2.0.0" - git-semver-tags "^2.0.2" - meow "^4.0.0" - q "^1.5.1" - convert-source-map@^1.1.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" @@ -2959,11 +2484,6 @@ core-js-compat@^3.6.2: browserslist "^4.8.5" semver "7.0.0" -core-js-pure@^3.0.0: - version "3.6.5" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" - integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== - core-js@^2.6.5: version "2.6.11" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" @@ -2984,26 +2504,89 @@ cosmiconfig@^5.0.0: js-yaml "^3.13.1" parse-json "^4.0.0" -cp-file@^6.1.0: - version "6.2.0" - resolved "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" - integrity sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA== - dependencies: - graceful-fs "^4.1.2" - make-dir "^2.0.0" - nested-error-stacks "^2.0.0" - pify "^4.0.1" - safe-buffer "^5.0.1" +crd-scripts@^0.2.20: + version "0.2.20" + resolved "https://registry.npmjs.org/crd-scripts/-/crd-scripts-0.2.20.tgz#f846587ca3234708cb243f23f731310fa92a951c" + integrity sha512-iHbW5qIHHDXVIq5fjWmFPN4QG/xlQAUzg+KMp7Fc+R1xEYD/iDNCP6/GMRl7KctgUx/sw/uDdGRcKhsewkIotQ== + dependencies: + "@babel/cli" "^7.2.3" + "@babel/core" "^7.3.4" + "@babel/plugin-proposal-class-properties" "^7.3.4" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.3.4" + "@babel/plugin-transform-runtime" "^7.3.4" + "@babel/polyfill" "^7.2.5" + "@babel/preset-env" "^7.3.4" + "@babel/preset-react" "^7.0.0" + "@babel/runtime" "^7.3.4" + "@nuxtjs/friendly-errors-webpack-plugin" "^2.0.2" + babel-eslint "^8.0.1" + babel-loader "^8.0.5" + colors-cli "^1.0.13" + copy-markdown-image-webpack-plugin "^2.0.0" + copy-template-dir "^1.3.0" + crd-theme "^0.2.20" + crd-utils "^0.2.8" + css-loader "^0.28.7" + detect-port "^1.2.2" + eslint "^7.11.0" + eslint-loader "^4.0.2" + file-loader "^1.1.11" + fs-extra "^5.0.0" + gh-pages "^1.2.0" + highlight.js "^9.12.0" + html-webpack-plugin "^3.2.0" + js-yaml "^3.14.0" + less-loader "^4.1.0" + loader-utils "^2.0.0" + loading-cli "^1.0.6" + local-ip-url "^1.0.1" + mini-css-extract-plugin "^0.4.0" + open-browsers "^1.1.1" + optimize-css-assets-webpack-plugin "^4.0.0" + postcss-flexbugs-fixes "^3.2.0" + postcss-loader "^2.0.9" + raw-content-replace-loader "^1.0.1" + rimraf "^2.6.2" + string-replace-loader "^2.1.1" + style-loader "^0.19.1" + uglifyjs-webpack-plugin "^2.1.1" + upath "^1.0.2" + url-replace-loader "^1.0.0" + webpack "^4.40.2" + webpack-dev-middleware "^3.7.1" + webpack-dev-server "^3.8.1" + webpack-hot-dev-clients "^1.0.4" + webpackbar "^4.0.0" + write "^1.0.3" + yamljs "^0.3.0" -cpy@7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/cpy/-/cpy-7.2.0.tgz#6f0f39ec720712628b4702c32263816f4720a364" - integrity sha512-CUYi9WYd7vdtEcq1NKqiS/yY2WdaDCNOBA/AoTQHVJzlpJMqctB8py9JrHgGIft6TgO5m8ZidI4l1ZD+RMr/wA== - dependencies: - arrify "^1.0.1" - cp-file "^6.1.0" - globby "^9.2.0" - nested-error-stacks "^2.1.0" +crd-templates@^0.2.19: + version "0.2.19" + resolved "https://registry.npmjs.org/crd-templates/-/crd-templates-0.2.19.tgz#52a244170514bcc4dddee6a162b09f3df6976bf1" + integrity sha512-CNYTNZ/RbUlP51WquYIDuOL/AW2SNdh8KFlhMKm6B902efpJWz66XYHAwvZ2tR3DLXZJAHwyQcfu1JaSk98IzQ== + +crd-theme@^0.2.20: + version "0.2.20" + resolved "https://registry.npmjs.org/crd-theme/-/crd-theme-0.2.20.tgz#78d9b38c92e3674325afcc8fa453533b4231c0ec" + integrity sha512-K/fvTZRIfg09fcJJv61zXvQQIXP9Ed9PA47olhsb/AE68rWKLxw+wjpzq6zdpDnh4E7dAyXeby2xc7dbWkc5fw== + dependencies: + classnames "^2.2.6" + diana "^1.0.2" + less "^3.0.2" + react "^16.8.4" + react-dom "^16.8.4" + react-dynamic-loadable "^1.1.2" + react-hot-loader "^4.1.1" + react-markdown "^3.3.0" + react-router-dom "^4.2.2" + react-switch "^5.0.1" + +crd-utils@^0.2.8: + version "0.2.8" + resolved "https://registry.npmjs.org/crd-utils/-/crd-utils-0.2.8.tgz#12a40e2ee55ac74030eafbef7d3fd8e4377271f7" + integrity sha512-tB01K67Qa7iAxSdpAL9yyouxoDv+ctGSlR0vL10gPSCDbrERf9j5ZCQA7dABvb5vTSXUyX/a0XbocHjA90PnzA== create-ecdh@^4.0.0: version "4.0.3" @@ -3013,13 +2596,6 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -3043,15 +2619,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -3063,6 +2630,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -3080,11 +2656,6 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - css-color-names@0.0.4: version "0.0.4" resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -3185,30 +2756,11 @@ csso@~2.3.1: clap "^1.0.9" source-map "^0.5.3" -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -damerau-levenshtein@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" - integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== - -dargs@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" - integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= - dependencies: - number-is-nan "^1.0.0" - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -3216,25 +2768,13 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4.1.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -3242,15 +2782,21 @@ debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: dependencies: ms "^2.1.1" -decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= +debug@^4.0.1: + version "4.3.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" + ms "2.1.2" -decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: +debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -3260,13 +2806,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -3279,21 +2818,11 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" - integrity sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow== - default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -3302,18 +2831,6 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -3371,19 +2888,6 @@ depd@~1.1.2: resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deprecated-obj@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/deprecated-obj/-/deprecated-obj-1.0.0.tgz#01f60ae7a344a385cb16223eaf3b1a42b04c3a2f" - integrity sha512-CkoAaiIjJnT0YmOoFwBo2qKQ5XMXo6+QYcvskzT6v0o5+kAmdQvfKbqxcHxcR2zQpi7dRD4CpOzppp9ivvRbEg== - dependencies: - flat "^4.1.0" - lodash "^4.17.11" - -deprecation@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" - integrity sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg== - des.js@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -3397,11 +2901,6 @@ destroy@~1.0.4: resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-indent@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -3429,20 +2928,6 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - -directory-tree-md@^2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/directory-tree-md/-/directory-tree-md-2.0.7.tgz#0d264c580503e7d89c7a44721e324cdcd40c679d" - integrity sha512-ICqdSHbayuiEVqzTHH+5tnq97AEj0O+J6CHHkf8YgFK3VzLyaGNXlB5VfsX1Vs013z2ueUDn+hU/3flGzsxh7A== - dependencies: - yamljs "^0.3.0" - dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -3463,18 +2948,10 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" @@ -3536,25 +3013,6 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" - integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= - dependencies: - is-obj "^1.0.0" - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -3611,11 +3069,6 @@ emoji-regex@^8.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz#48a2309cc8a1d2e9d23bc6a67c39b63032e76ea4" - integrity sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w== - emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -3647,6 +3100,13 @@ enhanced-resolve@^4.1.0: memory-fs "^0.5.0" tapable "^1.0.0" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -3664,7 +3124,7 @@ errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -3678,7 +3138,7 @@ error-stack-parser@^2.0.0: dependencies: stackframe "^1.1.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: version "1.17.5" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== @@ -3719,104 +3179,16 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-config-airbnb-base@^12.1.0: - version "12.1.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" - integrity sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA== - dependencies: - eslint-restricted-globals "^0.1.1" - -eslint-config-airbnb@^16.1.0: - version "16.1.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz#2546bfb02cc9fe92284bf1723ccf2e87bc45ca46" - integrity sha512-zLyOhVWhzB/jwbz7IPSbkUuj7X2ox4PHXTcZkEmDqTvd0baJmJyuxlFPDlZOE/Y5bC+HQRaEkT3FoHo9wIdRiw== - dependencies: - eslint-config-airbnb-base "^12.1.0" - -eslint-import-resolver-node@^0.3.3: - version "0.3.4" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-loader@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" - integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== - dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - dependencies: - debug "^2.6.9" - pkg-dir "^2.0.0" - -eslint-plugin-import@^2.11.0: - version "2.21.2" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.21.2.tgz#8fef77475cc5510801bedc95f84b932f7f334a7c" - integrity sha512-FEmxeGI6yaz+SnEB6YgNHlQK1Bs2DKLM+YF+vuTk5H8J9CLbJLtlPvRFgZZ2+sXiKAlN5dpdlrWOjK8ZoZJpQA== - dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.3" - eslint-module-utils "^2.6.0" - has "^1.0.3" - minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" - -eslint-plugin-jsx-a11y@^6.0.3: - version "6.3.1" - resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz#99ef7e97f567cc6a5b8dd5ab95a94a67058a2660" - integrity sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g== - dependencies: - "@babel/runtime" "^7.10.2" - aria-query "^4.2.2" - array-includes "^3.1.1" - ast-types-flow "^0.0.7" - axe-core "^3.5.4" - axobject-query "^2.1.2" - damerau-levenshtein "^1.0.6" - emoji-regex "^9.0.0" - has "^1.0.3" - jsx-ast-utils "^2.4.1" - language-tags "^1.0.5" - -eslint-plugin-react@^7.7.0: - version "7.20.0" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" - integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA== +eslint-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" + integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== dependencies: - array-includes "^3.1.1" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.2.3" - object.entries "^1.1.1" - object.fromentries "^2.0.2" - object.values "^1.1.1" - prop-types "^15.7.2" - resolve "^1.15.1" - string.prototype.matchall "^4.0.2" - xregexp "^4.3.0" - -eslint-restricted-globals@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" - integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= + find-cache-dir "^3.3.1" + fs-extra "^8.1.0" + loader-utils "^2.0.0" + object-hash "^2.0.3" + schema-utils "^2.6.5" eslint-scope@3.7.1: version "3.7.1" @@ -3826,14 +3198,6 @@ eslint-scope@3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" - integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -3842,62 +3206,87 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^4.19.1: - version "4.19.1" - resolved "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" - integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.11.0: + version "7.17.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" + integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.4" - esquery "^1.0.0" + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.2.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.2.0" esutils "^2.0.2" - file-entry-cache "^2.0.0" + file-entry-cache "^6.0.0" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^1.0.1" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" -espree@^3.5.4: - version "3.5.4" - resolved "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" esprima@^2.6.0: version "2.7.3" @@ -3909,7 +3298,7 @@ esprima@^4.0.0: resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.0: +esquery@^1.2.0: version "1.3.1" resolved "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -3923,6 +3312,13 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + estraverse@^4.1.0, estraverse@^4.1.1: version "4.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" @@ -3933,6 +3329,11 @@ estraverse@^5.1.0: resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -3968,19 +3369,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -4063,24 +3451,6 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -4115,24 +3485,12 @@ fast-deep-equal@^3.1.1: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -4161,13 +3519,6 @@ figgy-pudding@^3.5.1: resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - figures@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -4175,13 +3526,12 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= +file-entry-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" + integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" + flat-cache "^3.0.4" file-loader@^1.1.11: version "1.1.11" @@ -4248,15 +3598,6 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" @@ -4266,20 +3607,14 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: - locate-path "^2.0.0" + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" find-up@^3.0.0: version "3.0.0" @@ -4288,7 +3623,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.1.0: +find-up@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4296,22 +3631,18 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" + flatted "^3.1.0" + rimraf "^3.0.2" -flat@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== - dependencies: - is-buffer "~2.0.3" +flatted@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" + integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== flatten@^1.0.2: version "1.0.3" @@ -4343,7 +3674,7 @@ forever-agent@~0.6.1: resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@2.3.3, form-data@~2.3.2: +form-data@~2.3.2: version "2.3.3" resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== @@ -4386,6 +3717,15 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" @@ -4439,41 +3779,13 @@ get-caller-file@^2.0.1: resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-pkg-repo@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" - integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= - dependencies: - hosted-git-info "^2.1.4" - meow "^3.3.0" - normalize-package-data "^2.3.0" - parse-github-repo-url "^1.3.0" - through2 "^2.0.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -4499,55 +3811,6 @@ gh-pages@^1.2.0: graceful-fs "4.1.11" rimraf "^2.6.2" -git-raw-commits@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" - integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== - dependencies: - dargs "^4.0.1" - lodash.template "^4.0.2" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^2.0.2, git-semver-tags@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" - integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== - dependencies: - meow "^4.0.0" - semver "^6.0.0" - -git-up@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" - integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== - dependencies: - is-ssh "^1.3.0" - parse-url "^5.0.0" - -git-url-parse@11.1.2: - version "11.1.2" - resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz#aff1a897c36cc93699270587bea3dbcbbb95de67" - integrity sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ== - dependencies: - git-up "^4.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= - dependencies: - ini "^1.3.2" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -4556,19 +3819,14 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -4580,13 +3838,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - global@^4.3.0: version "4.4.0" resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" @@ -4595,24 +3846,17 @@ global@^4.3.0: min-document "^2.19.0" process "^0.11.10" -globals@^11.0.1, globals@^11.1.0: +globals@^11.1.0: version "11.12.0" resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globby@9.2.0, globby@^9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" + type-fest "^0.8.1" globby@^6.1.0: version "6.1.0" @@ -4625,46 +3869,12 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -got@9.6.0: - version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - graceful-fs@4.1.11: version "4.1.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.4" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -4674,18 +3884,6 @@ handle-thing@^2.0.0: resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -handlebars@^4.7.6: - version "4.7.6" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" - integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -4699,11 +3897,6 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -4721,6 +3914,11 @@ has-flag@^3.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" @@ -4787,9 +3985,9 @@ he@1.2.x: integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== highlight.js@^9.12.0: - version "9.18.1" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" - integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== + version "9.18.5" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" + integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== history@^4.7.2: version "4.10.1" @@ -4824,11 +4022,6 @@ hoist-non-react-statics@^3.3.0: dependencies: react-is "^16.7.0" -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -4887,11 +4080,6 @@ htmlparser2@^3.3.0: inherits "^2.0.1" readable-stream "^3.1.1" -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" @@ -4975,7 +4163,7 @@ humanize-url@^1.0.0: normalize-url "^1.0.0" strip-url-auth "^1.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5004,12 +4192,7 @@ iferr@^0.1.5: resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore@^3.3.3: - version "3.3.10" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.3: +ignore@^4.0.6: version "4.0.6" resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== @@ -5034,6 +4217,14 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-from@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -5041,11 +4232,6 @@ import-from@^2.1.0: dependencies: resolve-from "^3.0.0" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - import-local@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -5059,23 +4245,6 @@ imurmurhash@^0.1.4: resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -5109,50 +4278,6 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" - integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.11" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - internal-ip@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -5161,20 +4286,6 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== - dependencies: - es-abstract "^1.17.0-next.1" - has "^1.0.3" - side-channel "^1.0.2" - -interpret@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -5263,30 +4374,11 @@ is-buffer@^1.1.4, is-buffer@^1.1.5: resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - is-callable@^1.1.4, is-callable@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== -is-ci@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5356,11 +4448,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -5390,19 +4477,6 @@ is-hexadecimal@^1.0.0: resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - is-number@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -5415,11 +4489,6 @@ is-number@^7.0.0: resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - is-path-cwd@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" @@ -5432,13 +4501,6 @@ is-path-in-cwd@^2.0.0: dependencies: is-path-inside "^2.1.0" -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - is-path-inside@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" @@ -5458,18 +4520,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-plain-object@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" - integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== - dependencies: - isobject "^4.0.0" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - is-regex@^1.0.4, is-regex@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" @@ -5477,32 +4527,10 @@ is-regex@^1.0.4, is-regex@^1.0.5: dependencies: has "^1.0.3" -is-resolvable@^1.0.0: +is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-ssh@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" - integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== - dependencies: - protocols "^1.1.0" - -is-stream@^1.0.0, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-svg@^2.0.0: version "2.1.0" @@ -5518,23 +4546,11 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= - dependencies: - text-extensions "^1.0.0" - is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - is-whitespace-character@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" @@ -5589,11 +4605,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isobject@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" - integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== - isstream@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -5614,7 +4625,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.9.1: +js-yaml@^3.13.1, js-yaml@^3.14.0: version "3.14.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== @@ -5645,11 +4656,6 @@ jsesc@~0.5.0: resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -5665,6 +4671,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -5675,7 +4686,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -5711,11 +4722,6 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -5726,21 +4732,6 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.2.3, jsx-ast-utils@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" - integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== - dependencies: - array-includes "^3.1.1" - object.assign "^4.1.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - killable@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -5765,23 +4756,11 @@ kind-of@^5.0.0: resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -language-subtag-registry@~0.3.2: - version "0.3.20" - resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz#a00a37121894f224f763268e431c55556b0c0755" - integrity sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg== - -language-tags@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= - dependencies: - language-subtag-registry "~0.3.2" - last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" @@ -5790,13 +4769,6 @@ last-call-webpack-plugin@^3.0.0: lodash "^4.17.5" webpack-sources "^1.1.0" -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= - dependencies: - package-json "^4.0.0" - less-loader@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" @@ -5835,57 +4807,13 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -loader-fs-cache@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" - integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - find-cache-dir "^0.1.1" - mkdirp "^0.5.1" + prelude-ls "^1.2.1" + type-check "~0.4.0" loader-runner@^2.4.0: version "2.4.0" @@ -5911,6 +4839,15 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4 emojis-list "^3.0.0" json5 "^1.0.1" +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + loading-cli@^1.0.6: version "1.1.0" resolved "https://registry.npmjs.org/loading-cli/-/loading-cli-1.1.0.tgz#3457edaa3290439ad0061755174363a8091d56bc" @@ -5923,14 +4860,6 @@ local-ip-url@^1.0.1: resolved "https://registry.npmjs.org/local-ip-url/-/local-ip-url-1.0.3.tgz#4a4bf4eff91a847f870918dff3e1e3273605a81d" integrity sha512-OyHVtNHgSmxr8B+6iA8sxlGrdNQJdr6M8db5/v83BdZA/cYe7+0i1XsyBQ0AoRj2nK32O3znEuPU9/b8TS6iww== -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -5946,72 +4875,30 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.set@^4.3.2: - version "4.3.2" - resolved "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" - integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= - -lodash.template@^4.0.2: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.11: - version "4.17.11" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== - -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.0: version "4.17.15" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" +lodash@^4.17.19, lodash@^4.17.20: + version "4.17.20" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== loglevel@^1.6.8: version "1.6.8" @@ -6025,37 +4912,11 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - lower-case@^1.1.1: version "1.1.4" resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -6063,17 +4924,12 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -macos-release@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" - integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - pify "^3.0.0" + yallist "^4.0.0" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -6083,26 +4939,18 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -map-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" - integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -6172,66 +5020,11 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -meow@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" - integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist "^1.1.3" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - -meow@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz#1ed4a0a50b3844b451369c48362eb0515f04c1dc" - integrity sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw== - dependencies: - "@types/minimist" "^1.2.0" - arrify "^2.0.1" - camelcase "^6.0.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "^4.0.2" - normalize-package-data "^2.5.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" - merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge2@^1.2.3: - version "1.3.0" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== - methods@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -6264,23 +5057,11 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": version "1.44.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== -mime-types@2.1.24: - version "2.1.24" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" @@ -6298,16 +5079,6 @@ mime@^2.4.4: resolved "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - min-document@^2.19.0: version "2.19.0" resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -6315,11 +5086,6 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - mini-css-extract-plugin@^0.4.0: version "0.4.5" resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz#c99e9e78d54f3fa775633aee5933aeaa4e80719a" @@ -6339,31 +5105,14 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist-options@^4.0.2: - version "4.1.0" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -6399,11 +5148,6 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: dependencies: minimist "^1.2.5" -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -6426,7 +5170,7 @@ ms@2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.1.1: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -6444,11 +5188,6 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - nan@^2.12.1: version "2.14.1" resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" @@ -6481,16 +5220,11 @@ negotiator@0.6.2: resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.1" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== -nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" - integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -6503,11 +5237,6 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-fetch@^2.3.0: - version "2.6.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - node-forge@0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -6552,16 +5281,6 @@ noop2@^2.0.0: resolved "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b" integrity sha1-S2NgFemIK1R4PAK0EvaZ2MXNCls= -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -6589,16 +5308,6 @@ normalize-url@^1.0.0, normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" -normalize-url@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -6618,11 +5327,6 @@ num2fraction@^1.2.2: resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -6642,10 +5346,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-hash@^1.1.4: - version "1.3.1" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== +object-hash@^2.0.3: + version "2.1.1" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09" + integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== object-inspect@^1.7.0: version "1.7.0" @@ -6682,25 +5386,6 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - has "^1.0.3" - -object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - object.getownpropertydescriptors@^2.0.3: version "2.1.0" resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" @@ -6716,26 +5401,11 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -octokit-pagination-methods@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" - integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -6755,13 +5425,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - open-browsers@^1.1.1: version "1.2.2" resolved "https://registry.npmjs.org/open-browsers/-/open-browsers-1.2.2.tgz#1f355f892e0f2bd05a4b62923e7c9fc293ea1164" @@ -6794,29 +5457,17 @@ optimize-css-assets-webpack-plugin@^4.0.0: cssnano "^3.10.0" last-call-webpack-plugin "^3.0.0" -optionator@^0.8.2: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -ora@3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" original@^1.0.0: version "1.0.2" @@ -6830,36 +5481,11 @@ os-browserify@^0.3.0: resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-name@3.1.0, os-name@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" - integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== - dependencies: - macos-release "^2.2.0" - windows-release "^3.1.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -6867,13 +5493,6 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -6900,26 +5519,11 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - pako@~1.0.5: version "1.0.11" resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -6941,6 +5545,13 @@ param-case@2.1.x: dependencies: no-case "^2.2.0" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.5" resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" @@ -6965,18 +5576,6 @@ parse-entities@^1.1.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-github-repo-url@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" - integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -6985,34 +5584,6 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - lines-and-columns "^1.1.6" - -parse-path@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" - integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - -parse-url@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" - integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== - dependencies: - is-ssh "^1.3.0" - normalize-url "^3.3.0" - parse-path "^4.0.0" - protocols "^1.4.0" - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -7033,13 +5604,6 @@ path-dirname@^1.0.0: resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -7055,7 +5619,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= @@ -7065,6 +5629,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -7082,29 +5651,6 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -7126,7 +5672,7 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -7153,20 +5699,6 @@ pinkie@^2.0.0: resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -7174,10 +5706,12 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" portfinder@^1.0.26: version "1.0.26" @@ -7497,21 +6031,16 @@ postcss@^6.0.0, postcss@^6.0.1: source-map "^0.6.1" supports-color "^5.4.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prepend-http@^1.0.0, prepend-http@^1.0.1: +prepend-http@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - pretty-error@^2.0.2: version "2.1.1" resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -7557,7 +6086,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.1, prop-types@^15.6.2: version "15.7.2" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -7566,11 +6095,6 @@ prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.7" - resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" - integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== - proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -7584,11 +6108,6 @@ prr@~1.0.1: resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - psl@^1.1.28: version "1.8.0" resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -7654,7 +6173,7 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -q@^1.1.2, q@^1.5.1: +q@^1.1.2: version "1.5.1" resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -7692,16 +6211,6 @@ querystringify@^2.1.1: resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7739,16 +6248,6 @@ raw-content-replace-loader@^1.0.1: dependencies: loader-utils "^1.1.0" -rc@^1.0.1, rc@^1.1.6: - version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-dom@^16.8.4: version "16.13.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" @@ -7821,103 +6320,33 @@ react-router-dom@^4.2.2: warning "^4.0.1" react-router@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e" - integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg== - dependencies: - history "^4.7.2" - hoist-non-react-statics "^2.5.0" - invariant "^2.2.4" - loose-envify "^1.3.1" - path-to-regexp "^1.7.0" - prop-types "^15.6.1" - warning "^4.0.1" - -react-switch@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/react-switch/-/react-switch-5.0.1.tgz#449277f4c3aed5286fffd0f50d5cbc2a23330406" - integrity sha512-Pa5kvqRfX85QUCK1Jv0rxyeElbC3aNpCP5hV0LoJpU/Y6kydf0t4kRriQ6ZYA4kxWwAYk/cH51T4/sPzV9mCgQ== - dependencies: - prop-types "^15.6.2" - -react@^16.2.0, react@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + version "4.3.1" + resolved "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e" + integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg== dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" + history "^4.7.2" + hoist-non-react-statics "^2.5.0" + invariant "^2.2.4" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.1" + warning "^4.0.1" -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= +react-switch@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/react-switch/-/react-switch-5.0.1.tgz#449277f4c3aed5286fffd0f50d5cbc2a23330406" + integrity sha512-Pa5kvqRfX85QUCK1Jv0rxyeElbC3aNpCP5hV0LoJpU/Y6kydf0t4kRriQ6ZYA4kxWwAYk/cH51T4/sPzV9mCgQ== dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" + prop-types "^15.6.2" -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== +react@^16.2.0, react@^16.8.4: + version "16.13.1" + resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" @@ -7932,7 +6361,7 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -7957,37 +6386,6 @@ readdirp@~3.4.0: dependencies: picomatch "^2.2.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - reduce-css-calc@^1.2.6: version "1.3.0" resolved "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" @@ -8037,7 +6435,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: +regexp.prototype.flags@^1.2.0: version "1.3.0" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== @@ -8045,10 +6443,10 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -regexpp@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" - integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== regexpu-core@^4.6.0, regexpu-core@^4.7.0: version "4.7.0" @@ -8062,21 +6460,6 @@ regexpu-core@^4.6.0, regexpu-core@^4.7.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - regjsgen@^0.5.1: version "0.5.2" resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" @@ -8094,39 +6477,6 @@ relateurl@0.2.x: resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -release-it@^10.1.0: - version "10.4.5" - resolved "https://registry.npmjs.org/release-it/-/release-it-10.4.5.tgz#3130dfba3ced760d08fb7f4a3a94a6da21274f7e" - integrity sha512-szNizZw8SDe9gVLUqrR8f2RiVkhU3dzP9QUzL7GE1/aiiXjnQoR8CFFxo/cG/Hs5vq/tbFbpJHJrzFmC3J+cVQ== - dependencies: - "@octokit/rest" "16.25.0" - async-retry "1.2.3" - bump-file "2.0.0" - chalk "2.4.2" - conventional-changelog "3.1.4" - conventional-recommended-bump "4.1.1" - cpy "7.2.0" - debug "4.1.1" - deprecated-obj "1.0.0" - form-data "2.3.3" - git-url-parse "11.1.2" - globby "9.2.0" - got "9.6.0" - inquirer "6.3.1" - is-ci "2.0.0" - lodash "4.17.11" - mime-types "2.1.24" - ora "3.4.0" - os-name "3.1.0" - semver "6.0.0" - shelljs "0.8.3" - supports-color "6.1.0" - update-notifier "2.5.0" - url-join "4.0.0" - uuid "3.3.2" - window-size "1.1.1" - yargs-parser "13.0.0" - remark-parse@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" @@ -8174,13 +6524,6 @@ repeat-string@^1.5.4, repeat-string@^1.6.1: resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - replace-ext@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" @@ -8217,19 +6560,16 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -8242,16 +6582,16 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + resolve-pathname@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" @@ -8262,49 +6602,34 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.3.2, resolve@^1.8.1: version "1.17.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@0.12.0, retry@^0.12.0: +retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" @@ -8316,11 +6641,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-parallel@^1.1.4: version "1.1.9" resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" @@ -8333,25 +6653,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= - -rxjs@^6.4.0: - version "6.5.5" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -8432,38 +6733,28 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@5.4.1: - version "5.4.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -semver@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" - integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== - semver@7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.2.1: + version "7.3.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -8568,29 +6859,24 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= -shelljs@0.8.3: - version "0.8.3" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" - integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" - integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== - dependencies: - es-abstract "^1.17.0-next.1" - object-inspect "^1.7.0" +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -8600,12 +6886,14 @@ slash@^2.0.0: resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: - is-fullwidth-code-point "^2.0.0" + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" snapdragon-node@^2.0.1: version "2.1.1" @@ -8709,32 +6997,6 @@ source-map@^0.7.3: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -8772,20 +7034,6 @@ split2@^1.0.0: dependencies: through2 "~2.0.0" -split2@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" - integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== - dependencies: - through2 "^2.0.2" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -8888,7 +7136,7 @@ string-replace-loader@^2.1.1: loader-utils "^1.2.3" schema-utils "^2.6.5" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +string-width@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -8905,7 +7153,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -8914,18 +7162,6 @@ string-width@^4.1.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" - string.prototype.trimend@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" @@ -9002,46 +7238,15 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-outer@^1.0.0: version "1.0.1" @@ -9063,13 +7268,6 @@ style-loader@^0.19.1: loader-utils "^1.0.2" schema-utils "^0.3.0" -supports-color@6.1.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -9089,6 +7287,20 @@ supports-color@^5.3.0, supports-color@^5.4.0: dependencies: has-flag "^3.0.0" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -9102,30 +7314,21 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" -table@4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== +table@^6.0.4: + version "6.0.7" + resolved "https://registry.npmjs.org/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - terser-webpack-plugin@^1.4.3: version "1.4.4" resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" @@ -9150,17 +7353,12 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - -text-table@^0.2.0, text-table@~0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -through2@^2.0.0, through2@^2.0.2, through2@~2.0.0: +through2@^2.0.0, through2@~2.0.0: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -9168,28 +7366,11 @@ through2@^2.0.0, through2@^2.0.2, through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through2@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== - dependencies: - readable-stream "2 || 3" - -through@2, "through@>=2.2.7 <3", through@^2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - thunky@^1.0.2: version "1.1.0" resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - timers-browserify@^2.0.4: version "2.0.11" resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" @@ -9207,13 +7388,6 @@ tiny-warning@^1.0.0: resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -9231,11 +7405,6 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -9279,26 +7448,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-newlines@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" - integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== - -trim-off-newlines@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" - integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= - trim-repeated@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" @@ -9326,16 +7475,6 @@ trough@^1.0.0: resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -tsconfig-paths@^3.9.0: - version "3.9.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" - integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - tslib@^1.10.0, tslib@^1.9.0: version "1.13.0" resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" @@ -9358,28 +7497,18 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-fest@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - type-fest@^0.8.1: version "0.8.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" @@ -9406,13 +7535,6 @@ uglify-js@3.4.x: commander "~2.19.0" source-map "~0.6.1" -uglify-js@^3.1.4: - version "3.9.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b" - integrity sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA== - dependencies: - commander "~2.20.3" - uglify-js@^3.6.0: version "3.10.0" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz#397a7e6e31ce820bfd1cb55b804ee140c587a9e7" @@ -9510,13 +7632,6 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" @@ -9553,13 +7668,6 @@ unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: dependencies: unist-util-visit-parents "^2.0.0" -universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" - integrity sha512-8itiX7G05Tu3mGDTdNY2fB4KJ8MgZLS54RdG6PkkfwMAavrXu1mV/lls/GABx9O3Rw4PnTtasxrvbMQoBYY92Q== - dependencies: - os-name "^3.0.0" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -9578,32 +7686,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - upath@^1.0.2, upath@^1.1.1: version "1.2.0" resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - upper-case@^1.1.1: version "1.1.3" resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -9621,25 +7708,6 @@ urix@^0.1.0: resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-join@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" - integrity sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo= - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - url-parse@^1.4.3: version "1.4.7" resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" @@ -9657,11 +7725,6 @@ url-replace-loader@^1.0.0: mime "^1.4.1" schema-utils "^0.3.0" -url-template@^2.0.8: - version "2.0.8" - resolved "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" - integrity sha1-/FZaPMy/93MMd19WQflVV5FDnyE= - url@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -9712,23 +7775,15 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== value-equal@^1.0.1: version "1.0.1" @@ -9813,13 +7868,6 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - webpack-dev-middleware@^3.7.1, webpack-dev-middleware@^3.7.2: version "3.7.2" resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" @@ -9977,38 +8025,18 @@ which@^1.2.9: dependencies: isexe "^2.0.0" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -window-size@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/window-size/-/window-size-1.1.1.tgz#9830006580ada78ab26ecd6978a6e03115c1af20" - integrity sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA== - dependencies: - define-property "^1.0.0" - is-number "^3.0.0" - -windows-release@^3.1.0: - version "3.3.0" - resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0" - integrity sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ== +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: - execa "^1.0.0" + isexe "^2.0.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -10039,22 +8067,6 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" - write@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -10074,18 +8086,6 @@ x-is-string@^0.1.0: resolved "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xregexp@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" - integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== - dependencies: - "@babel/runtime-corejs3" "^7.8.3" - xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -10096,16 +8096,16 @@ y18n@^4.0.0: resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - yallist@^3.0.2: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yamljs@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" @@ -10114,14 +8114,6 @@ yamljs@^0.3.0: argparse "^1.0.7" glob "^7.0.5" -yargs-parser@13.0.0: - version "13.0.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz#3fc44f3e76a8bdb1cc3602e860108602e5ccde8b" - integrity sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -10130,14 +8122,6 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.3: - version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs@^13.3.2: version "13.3.2" resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" From 914e11cd13176a6aa2dcbc8bdc5758a7a88183c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Jan 2021 06:05:48 +0000 Subject: [PATCH 185/352] chore(deps): bump postcss-flexbugs-fixes from 3.3.1 to 5.0.1 Bumps [postcss-flexbugs-fixes](https://github.com/luisrudge/postcss-flexbugs-fixes) from 3.3.1 to 5.0.1. - [Release notes](https://github.com/luisrudge/postcss-flexbugs-fixes/releases) - [Changelog](https://github.com/luisrudge/postcss-flexbugs-fixes/blob/master/CHANGELOG.md) - [Commits](https://github.com/luisrudge/postcss-flexbugs-fixes/commits) Signed-off-by: dependabot[bot] --- packages/scripts/package.json | 2 +- yarn.lock | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 78628b0c..4ccabeb3 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -42,7 +42,7 @@ "mini-css-extract-plugin": "^0.4.0", "open-browsers": "^1.1.1", "path-browserify": "^1.0.1", - "postcss-flexbugs-fixes": "^3.2.0", + "postcss-flexbugs-fixes": "^5.0.1", "postcss-loader": "^2.0.9", "process": "^0.11.10", "raw-content-replace-loader": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index ac83c38a..fc31701c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7807,6 +7807,11 @@ nan@^2.12.1: resolved "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -8851,12 +8856,12 @@ postcss-filter-plugins@^2.0.0: dependencies: postcss "^5.0.4" -postcss-flexbugs-fixes@^3.2.0: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz#0783cc7212850ef707f97f8bc8b6fb624e00c75d" - integrity sha512-9y9kDDf2F9EjKX6x9ueNa5GARvsUbXw4ezH8vXItXHwKzljbu8awP7t5dCaabKYm18Vs1lo5bKQcnc0HkISt+w== +postcss-flexbugs-fixes@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.1.tgz#8a4b84937e94e7c100e48e019eaad33850bc7b33" + integrity sha512-CBEfCMk5hcqGlgRb9SDzQ3bIExJlfz89heRsAYNuNRiCJOETlVOL1KfBV1AGKFww8olEpOOSAgGiWeaGTPCkeg== dependencies: - postcss "^6.0.1" + postcss "^8.1.4" postcss-load-config@^2.0.0: version "2.1.2" @@ -9310,6 +9315,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: source-map "^0.6.1" supports-color "^6.1.0" +postcss@^8.1.4: + version "8.2.4" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04" + integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" From 72eb0ef729bdbc3e581b85e9d8786838f125d74e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Jan 2021 07:11:13 +0000 Subject: [PATCH 186/352] chore(deps): bump actions/setup-node from v2.1.0 to v2.1.4 Bumps [actions/setup-node](https://github.com/actions/setup-node) from v2.1.0 to v2.1.4. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.1.0...c46424eee26de4078d34105d3de3cc4992202b1e) Signed-off-by: dependabot[bot] --- .github/workflows/gh-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index b4896ff3..f680bc5c 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/checkout@v2 - name: Setup Node - uses: actions/setup-node@v2.1.3 + uses: actions/setup-node@v2.1.4 with: node-version: '12.x' From 87ae67419637732a33e8e86b4271fc842748fcbe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 14:28:51 +0000 Subject: [PATCH 187/352] chore(deps): bump axios from 0.18.1 to 0.21.1 Bumps [axios](https://github.com/axios/axios) from 0.18.1 to 0.21.1. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v0.21.1/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.18.1...v0.21.1) Signed-off-by: dependabot[bot] --- packages/leetcode-cli/package.json | 2 +- yarn.lock | 33 +++++++++--------------------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index 9027aa63..cb8af9c8 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -6,7 +6,7 @@ "leetcode": "./src/cli.js" }, "dependencies": { - "axios": "^0.18.0", + "axios": "^0.21.1", "commander": "^2.20.0", "crd-utils": "^0.2.22", "enquirer": "^2.3.0", diff --git a/yarn.lock b/yarn.lock index fc31701c..f4ade12e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2714,13 +2714,12 @@ axe-core@^4.0.2: resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.0.2.tgz#c7cf7378378a51fcd272d3c09668002a4990b1cb" integrity sha512-arU1h31OGFu+LPrOLGZ7nB45v940NMDMEJeNmbutu57P+UFDVnkZg3e+J1I2HJRZ9hT7gO8J91dn/PMrAiKakA== -axios@^0.18.0: - version "0.18.1" - resolved "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" - integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" + follow-redirects "^1.10.0" axobject-query@^2.2.0: version "2.2.0" @@ -4162,7 +4161,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@3.1.0, debug@=3.1.0: +debug@3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== @@ -5384,17 +5383,10 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -follow-redirects@^1.0.0: - version "1.13.0" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" - integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.13.1" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" + integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== for-in@^0.1.3: version "0.1.8" @@ -6456,11 +6448,6 @@ is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.2: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" From 3a36ba3a9cec96e0bef9dfd040edce12183cbdbf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 07:23:33 +0000 Subject: [PATCH 188/352] chore(deps): bump yi-Xu-0100/traffic-to-badge from v1.2.0 to v1.4.0 Bumps [yi-Xu-0100/traffic-to-badge](https://github.com/yi-Xu-0100/traffic-to-badge) from v1.2.0 to v1.4.0. - [Release notes](https://github.com/yi-Xu-0100/traffic-to-badge/releases) - [Changelog](https://github.com/yi-Xu-0100/traffic-to-badge/blob/main/CHANGELOG.md) - [Commits](https://github.com/yi-Xu-0100/traffic-to-badge/compare/v1.2.0...6e7656202ad370afe7e80465c32ee367324ab4fc) Signed-off-by: dependabot[bot] --- .github/workflows/traffic2badge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/traffic2badge.yml b/.github/workflows/traffic2badge.yml index e3c617a3..7746f381 100644 --- a/.github/workflows/traffic2badge.yml +++ b/.github/workflows/traffic2badge.yml @@ -31,7 +31,7 @@ jobs: - name: Set Traffic id: traffic - uses: yi-Xu-0100/traffic-to-badge@v1.2.0 + uses: yi-Xu-0100/traffic-to-badge@v1.4.0 with: my_token: ${{ secrets.TRAFFIC_TOKEN }} #(default) static_list: ${{ github.repository }} From 5ead2d38c48081a49edadf9d3e73aab73bf47a77 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 8 Feb 2021 09:04:19 +0800 Subject: [PATCH 189/352] fix: update correct package --- packages/scripts/package.json | 2 +- yarn.lock | 24 +++++------------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 4ccabeb3..de731d87 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -42,7 +42,7 @@ "mini-css-extract-plugin": "^0.4.0", "open-browsers": "^1.1.1", "path-browserify": "^1.0.1", - "postcss-flexbugs-fixes": "^5.0.1", + "postcss-flexbugs-fixes": "^3.3.1", "postcss-loader": "^2.0.9", "process": "^0.11.10", "raw-content-replace-loader": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index f4ade12e..46d4c3cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7794,11 +7794,6 @@ nan@^2.12.1: resolved "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.20: - version "3.1.20" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -8843,12 +8838,12 @@ postcss-filter-plugins@^2.0.0: dependencies: postcss "^5.0.4" -postcss-flexbugs-fixes@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.1.tgz#8a4b84937e94e7c100e48e019eaad33850bc7b33" - integrity sha512-CBEfCMk5hcqGlgRb9SDzQ3bIExJlfz89heRsAYNuNRiCJOETlVOL1KfBV1AGKFww8olEpOOSAgGiWeaGTPCkeg== +postcss-flexbugs-fixes@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz#0783cc7212850ef707f97f8bc8b6fb624e00c75d" + integrity sha512-9y9kDDf2F9EjKX6x9ueNa5GARvsUbXw4ezH8vXItXHwKzljbu8awP7t5dCaabKYm18Vs1lo5bKQcnc0HkISt+w== dependencies: - postcss "^8.1.4" + postcss "^6.0.1" postcss-load-config@^2.0.0: version "2.1.2" @@ -9302,15 +9297,6 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.1.4: - version "8.2.4" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04" - integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg== - dependencies: - colorette "^1.2.1" - nanoid "^3.1.20" - source-map "^0.6.1" - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" From fc847cb2be4e9a5c6d0253bbb1b7ea5a31db8268 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 8 Feb 2021 09:08:30 +0800 Subject: [PATCH 190/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- packages/create-react-doc/package.json | 6 +++--- packages/leetcode-cli/package.json | 2 +- packages/scripts/package.json | 4 ++-- packages/theme/package.json | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lerna.json b/lerna.json index 5f9a9af7..abedf515 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.2.32", + "version": "0.2.33", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 09155e57..08cc41c9 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "0.2.32", + "version": "0.2.33", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 14415d9d..916fc711 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "0.2.31", + "version": "0.2.33", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^0.2.28", + "crd-scripts": "^0.2.33", "crd-templates": "^0.2.31", - "crd-theme": "^0.2.28", + "crd-theme": "^0.2.33", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index cb8af9c8..0a562e9b 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "0.2.22", + "version": "0.2.33", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index de731d87..27c76b51 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "0.2.28", + "version": "0.2.33", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -22,7 +22,7 @@ "colors-cli": "^1.0.13", "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", - "crd-theme": "^0.2.28", + "crd-theme": "^0.2.33", "crd-utils": "^0.2.22", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/theme/package.json b/packages/theme/package.json index b582899d..ba6cea9e 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "0.2.28", + "version": "0.2.33", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 3dd8659827f0825e51c50dbd29c54c5fd5cd8afa Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 9 Feb 2021 18:41:31 +0800 Subject: [PATCH 191/352] docs: support SEO for chrome search --- injectLogic/index.js | 10 ++++++++-- packages/theme/index.html | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/injectLogic/index.js b/injectLogic/index.js index 3226cbca..44ffdd69 100644 --- a/injectLogic/index.js +++ b/injectLogic/index.js @@ -1,6 +1,12 @@ /* eslint-disable no-empty */ -// perf inject logic only once -const inject = () => {} +// seo: perf inject logic only once +const inject = () => { + // SEO for Google through https://search.google.com/search-console/welcome + const meta = document.createElement('meta') + meta.name = 'google-site-verification' + meta.content = '7fyp1NuvXSRLM9KpMq5_YNE_0zFZkPnuV-SbVVFgWbI' + document.head.appendChild(meta) +} // perf injectWithPathname logic every pathname changes const injectWithPathname = (pathname) => { diff --git a/packages/theme/index.html b/packages/theme/index.html index db428f72..ad901f2b 100644 --- a/packages/theme/index.html +++ b/packages/theme/index.html @@ -6,6 +6,7 @@ + From b2947673ffadc3aed7cda32bc7eb4b436ed6ee76 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 14 Feb 2021 23:56:29 +0800 Subject: [PATCH 192/352] docs: update --- packages/scripts/src/conf/webpack.config.dev.js | 1 - packages/scripts/src/conf/webpack.config.js | 7 ------- 2 files changed, 8 deletions(-) diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index fdd77de8..890093e5 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -10,7 +10,6 @@ const config = require('./webpack.config') const paths = require('./path') module.exports = function (cmd) { - console.log('upath.normalizeSafe(paths.defaultTheme)', upath.normalizeSafe(paths.defaultTheme)) const docsConfig = getDocsConfig() config.mode = 'development' config.entry = [ diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index f1e5ff2d..d5603b4c 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -108,11 +108,4 @@ module.exports = { path: require.resolve('path-browserify'), }, }, - // node: { - // dgram: 'empty', - // fs: 'empty', - // net: 'empty', - // tls: 'empty', - // child_process: 'empty', - // }, } From 6746c11e0b1c87e344e2f196b91f5e45f50d0c1f Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 19 Feb 2021 13:10:48 +0800 Subject: [PATCH 193/352] feat: prerender for router --- .github/workflows/gh-pages.yml | 1 + package.json | 4 +- packages/crd-seed/layout/index.js | 32 ++- packages/scripts/package.json | 1 + .../scripts/src/conf/webpack.config.prod.js | 60 ++++- packages/scripts/src/web/Router.js | 9 +- packages/theme/index.js | 14 +- yarn.lock | 227 ++++++++++++++++-- 8 files changed, 302 insertions(+), 46 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index f680bc5c..bc4ef7c5 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -3,6 +3,7 @@ on: push: branches: - main + - feature/seo jobs: deploy: diff --git a/package.json b/package.json index 574b1c62..c26f7374 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "build": "node packages/create-react-doc/index.js build", "deploy": "node packages/create-react-doc/index.js deploy", "release": "lerna publish", - "release-qa": "lerna publish --npm-tag=beta" + "release-qa": "lerna publish --npm-tag=beta", + "dev": "http-server .crd-dist -p 8080" }, "repository": { "type": "git", @@ -37,6 +38,7 @@ "eslint-plugin-import": "^2.11.0", "eslint-plugin-jsx-a11y": "^6.0.3", "eslint-plugin-react": "^7.7.0", + "http-server": "^0.12.3", "lerna": "^3.22.1" }, "dependencies": { diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 63632065..0d796d73 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -1,4 +1,5 @@ import { useState, useEffect } from 'react' +// import { Switch, Link, Route } from 'react-router-dom' import { Switch, Link, Route, Redirect } from 'react-router-dom' import cx from 'classnames' import Menu from '../component/Menu' @@ -77,14 +78,21 @@ function BasicLayout({ {(item.mdconf && item.mdconf.title) || item.name} ) : ( - - {item && item.mdconf && item.mdconf.title - ? item.mdconf.title - : item.title} - + window.location.href.indexOf('.crd-dist') > -1 + ? + {item && item.mdconf && item.mdconf.title + ? item.mdconf.title + : item.title} + + : + {item && item.mdconf && item.mdconf.title + ? item.mdconf.title + : item.title} + ) } /> @@ -148,7 +156,8 @@ function BasicLayout({ * such as edit in created time、edited time and so on. */ const renderPageFooter = () => { - const matchData = routeData.find((data) => data.path === pathname) + // in local env, data.path is to be /READEME, however pathname may be /Users/mac/.../.crd-dist/READEME/index.html + const matchData = routeData.find((data) => pathname.indexOf(data.path) > -1) const matchProps = matchData && matchData.props return (
@@ -164,7 +173,7 @@ function BasicLayout({ {languageMap[language].modify_tm}: - {routeData.find((data) => data.path === pathname).props.mtime} + {routeData.find((data) => pathname.indexOf(data.path)).props.mtime} ): null} @@ -172,7 +181,7 @@ function BasicLayout({ ); } const isCurentChildren = () => { - const getRoute = routeData.filter((data) => pathname === data.path); + const getRoute = routeData.filter((data) => pathname.indexOf(data.path)); const article = getRoute.length > 0 ? getRoute[0].article : null; const childs = menuSource.filter( (data) => @@ -218,6 +227,7 @@ function BasicLayout({ { const Comp = item.component; diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 27c76b51..06c5b994 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -15,6 +15,7 @@ "@babel/preset-env": "^7.3.4", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.3.4", + "@dreysolano/prerender-spa-plugin": "^1.0.3", "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2", "babel-eslint": "^8.0.1", "babel-loader": "^8.0.5", diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 819d2036..6f822dad 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -4,6 +4,7 @@ const upath = require('upath') const HtmlWebpackPlugin = require('html-webpack-plugin') const CopyMarkdownImageWebpackPlugin = require('copy-markdown-image-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const PrerenderSPAPlugin = require('@dreysolano/prerender-spa-plugin') // const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const { getDocsConfig } = require('../utils') @@ -11,12 +12,22 @@ const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') const paths = require('./path') +const Renderer = PrerenderSPAPlugin.PuppeteerRenderer + module.exports = function (cmd) { const docsConfig = getDocsConfig() config.mode = 'production' config.entry = [paths.appIndexJs] - config.output.filename = 'js/[hash:8].js' + // config.entry = { + // test1: [paths.appIndexJs], + // test2: [paths.appIndexJs], + // } + // config.output.filename = 'js/[hash:8].js' + // config.output.filename = 'static/js/[name].bundle.js' + // config.output.chunkFilename = 'js/[name].[hash:8].js' config.output.chunkFilename = 'js/[name].[hash:8].js' + config.output.publicPath = '/' + config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { const loaders = [] @@ -126,6 +137,7 @@ module.exports = function (cmd) { removeComments: true, removeEmptyAttributes: true, }, + // filename: 'README/index.html', }), new CopyMarkdownImageWebpackPlugin({ dir: cmd.markdownPaths, @@ -149,6 +161,52 @@ module.exports = function (cmd) { filename: 'css/[contenthash].css', chunkFilename: 'css/[id].css', }), + new PrerenderSPAPlugin({ + // Required - The path to the webpack-outputted app to prerender. + staticDir: paths.docsBuildDist, + // staticDir: '../../../theme/index.html', + // outputDir: path.join(__dirname, 'prerendered'), + // outputDir: `${paths.docsBuildDist}/prerendered`, + // Required - Routes to render. + // routes: ['/', '/#/README', '/#/快速上手'], + routes: ['/', '/README', '/快速上手', '/404'], + // Server configuration options. + // server: { + // // Normally a free port is autodetected, but feel free to set this if needed. + // port: 8001, + // }, + // The actual renderer to use. (Feel free to write your own) + // Available renderers: https://github.com/Tribex/prerenderer/tree/master/renderers + renderer: new Renderer({ + // // Optional - The name of the property to add to the window object with the contents of `inject`. + injectProperty: '__PRERENDER_INJECTED', + // // Optional - Any values you'd like your app to have access to via `window.injectProperty`. + inject: { + prerender: true, + }, + + // // Optional - defaults to 0, no limit. + // // Routes are rendered asynchronously. + // // Use this to limit the number of routes rendered in parallel. + maxConcurrentRoutes: 4, + + // // Optional - Wait to render until the specified event is dispatched on the document. + // // eg, with `document.dispatchEvent(new Event('custom-render-trigger'))` + // renderAfterDocumentEvent: 'custom-render-trigger', + + // // Optional - Wait to render until the specified element is detected using `document.querySelector` + // renderAfterElementExists: 'my-app-element', + + // // Optional - Wait to render until a certain amount of time has passed. + // // NOT RECOMMENDED + // renderAfterTime: 5000, // Wait 5 seconds. + + // Other puppeteer options. + // (See here: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteerlaunchoptions) + // headless: false // Display the browser window when rendering. Useful for debugging. + // headless: false, + }), + }), ]) return config } diff --git a/packages/scripts/src/web/Router.js b/packages/scripts/src/web/Router.js index 718f39df..6e325fb2 100644 --- a/packages/scripts/src/web/Router.js +++ b/packages/scripts/src/web/Router.js @@ -1,4 +1,5 @@ -import { HashRouter, withRouter, Route, Switch } from 'react-router-dom' +// import { HashRouter, withRouter, Route, Switch } from 'react-router-dom' +import { BrowserRouter, withRouter, Route, Switch } from 'react-router-dom' import theme from 'crd-theme' // todo https://github.com/jaywcjlove/react-dynamic-loadable/blob/master/packages/core/src/index.jsx import lazyload from './lazyload' @@ -69,8 +70,10 @@ const RoutersContainer = withRouter(({ ...props }) => { export default function RouterRoot() { return ( - + // + - + + // ) } diff --git a/packages/theme/index.js b/packages/theme/index.js index cdd40637..2e295724 100644 --- a/packages/theme/index.js +++ b/packages/theme/index.js @@ -1,17 +1,19 @@ /* eslint-disable global-require */ -import Loading from './component/Loading' +// import Loading from './component/Loading' +import Markdown from './routes/Pages' import './index.less' export default function (Lazyload, props) { - const LoadableComponent = Lazyload({ - component: () => import('./routes/Pages'), - LoadingComponent: Loading, - }) + // const LoadableComponent = Lazyload({ + // component: () => import('./routes/Pages'), + // LoadingComponent: Loading, + // }) // routing load component if (props.routeData && props.routeData.length > 0) { props.routeData.map((item) => { - item.component = LoadableComponent + // item.component = LoadableComponent + item.component = Markdown return item }) } diff --git a/yarn.lock b/yarn.lock index 46d4c3cf..f7d8f181 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1037,6 +1037,15 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@dreysolano/prerender-spa-plugin@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@dreysolano/prerender-spa-plugin/-/prerender-spa-plugin-1.0.3.tgz#3e05f7ebfe88ac5a5a17a3bdbb7ce517a2fef57a" + integrity sha512-AIYhpslyX3T1yyQ55I10GuuB+HeIgwOalOTJLGgMYvwdn+SyQk0fKlsZA0ScafDssY4OHoqcG55yFBrpz4zM7Q== + dependencies: + "@prerenderer/prerenderer" "^0.7.2" + "@prerenderer/renderer-puppeteer" "^0.2.0" + html-minifier "^4.0.0" + "@eslint/eslintrc@^0.2.1": version "0.2.1" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" @@ -1981,6 +1990,23 @@ dependencies: "@types/node" ">= 8" +"@prerenderer/prerenderer@^0.7.2": + version "0.7.2" + resolved "https://registry.npmjs.org/@prerenderer/prerenderer/-/prerenderer-0.7.2.tgz#b26a806bcdb3b313d527b313bdd72a57434b45fd" + integrity sha512-zWG3uFnrQWDJQoSzGB8bOnNhJCgIiylVYDFBP7Nw2LqngHOqwvpdBtGSjfajC8+fdR/iB2FqMqe27cfdmf/8TQ== + dependencies: + express "^4.16.2" + http-proxy-middleware "^0.18.0" + portfinder "^1.0.13" + +"@prerenderer/renderer-puppeteer@^0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@prerenderer/renderer-puppeteer/-/renderer-puppeteer-0.2.0.tgz#86bea00159851dc4f330b7325af5cdca7f185bf1" + integrity sha512-sC8WBcYcXbqm6premzCcUNDRROtAwBtBewUuzHyKcYDqU6InqjfpUQEXdIlhikN0gvqzlJy1+c7OJSfNYi4/tg== + dependencies: + promise-limit "^2.5.0" + puppeteer "^1.7.0" + "@types/anymatch@*": version "1.3.1" resolved "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -2803,6 +2829,11 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +basic-auth@^1.0.3: + version "1.1.0" + resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" + integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= + batch@0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -3110,6 +3141,14 @@ callsites@^3.0.0: resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + camel-case@^4.1.1: version "4.1.2" resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" @@ -3340,7 +3379,7 @@ classnames@^2.2.6: resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== -clean-css@^4.2.3: +clean-css@^4.2.1, clean-css@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== @@ -3529,6 +3568,11 @@ colors-cli@^1.0.13, colors-cli@^1.0.17, colors-cli@^1.0.26: resolved "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.27.tgz#1a33f6cfc013cdb55e50bac0bff1a8f5f0866cf8" integrity sha512-oyHDobdhzZDRHzVqOX+0owvXkS6recku25PUutP89BggJ3HikYTBpa7HZOoiAwhKFgHdyfJ+YNJyqxM4kBcEUg== +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + colors@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -3554,7 +3598,7 @@ commander@2.15.1: resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== -commander@^2.12.2, commander@^2.20.0: +commander@^2.12.2, commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3607,7 +3651,7 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -3829,6 +3873,11 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +corser@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" + integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= + cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: version "5.2.1" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -3839,15 +3888,6 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" -crd-seed@0.2.24: - version "0.2.24" - resolved "https://registry.npmjs.org/crd-seed/-/crd-seed-0.2.24.tgz#50ace28c8fe1c96a3cbef259ffcef08677eb5ba2" - integrity sha512-YwQKdCh3LNkQxOqnLeKPmhpfMuNVT1uGh4hhkEF/8yQ465sfnTKtntflVvOIRpF6DAr8SBCpiILXyw8xkxaD/g== - dependencies: - react-markdown "^3.3.0" - react-router-dom "^4.2.2" - react-switch "^5.0.1" - cross-fetch@2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" @@ -4502,6 +4542,16 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +ecstatic@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48" + integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog== + dependencies: + he "^1.1.1" + mime "^1.6.0" + minimist "^1.1.0" + url-join "^2.0.5" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -5024,7 +5074,7 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -express@^4.17.1: +express@^4.16.2, express@^4.17.1: version "4.17.1" resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -5112,6 +5162,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-zip@^1.6.6: + version "1.7.0" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + extract-zip@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -5875,7 +5935,7 @@ has@^1.0.0, has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" -he@^1.2.0: +he@^1.1.1, he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -5969,6 +6029,19 @@ html-minifier-terser@^5.0.1: relateurl "^0.2.7" terser "^4.6.3" +html-minifier@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" + integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== + dependencies: + camel-case "^3.0.0" + clean-css "^4.2.1" + commander "^2.19.0" + he "^1.2.0" + param-case "^2.1.1" + relateurl "^0.2.7" + uglify-js "^3.5.1" + html-webpack-plugin@^4.5.1: version "4.5.1" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz#40aaf1b5cb78f2f23a83333999625c20929cda65" @@ -6061,7 +6134,17 @@ http-proxy-middleware@0.19.1: lodash "^4.17.11" micromatch "^3.1.10" -http-proxy@^1.17.0: +http-proxy-middleware@^0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" + integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q== + dependencies: + http-proxy "^1.16.2" + is-glob "^4.0.0" + lodash "^4.17.5" + micromatch "^3.1.9" + +http-proxy@^1.16.2, http-proxy@^1.17.0, http-proxy@^1.18.0: version "1.18.1" resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -6070,6 +6153,22 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" +http-server@^0.12.3: + version "0.12.3" + resolved "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37" + integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA== + dependencies: + basic-auth "^1.0.3" + colors "^1.4.0" + corser "^2.0.1" + ecstatic "^3.3.2" + http-proxy "^1.18.0" + minimist "^1.2.5" + opener "^1.5.1" + portfinder "^1.0.25" + secure-compare "3.0.1" + union "~0.5.0" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -6079,7 +6178,7 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@^2.2.3: +https-proxy-agent@^2.2.1, https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== @@ -7221,7 +7320,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -7253,6 +7352,11 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -7485,7 +7589,7 @@ methods@~1.1.2: resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -7528,11 +7632,16 @@ mime-types@^2.1.27: dependencies: mime-db "1.45.0" -mime@1.6.0, mime@^1.4.1: +mime@1.6.0, mime@^1.4.1, mime@^1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.0.3: + version "2.5.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" + integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== + mime@^2.4.4: version "2.4.6" resolved "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" @@ -7598,7 +7707,7 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -7708,7 +7817,7 @@ mkdirp@0.3.x: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -7841,6 +7950,13 @@ nice-try@^1.0.4: resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + no-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -8245,6 +8361,11 @@ open@^7.0.0: is-docker "^2.0.0" is-wsl "^2.1.1" +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + opn@^5.5.0: version "5.5.0" resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -8444,6 +8565,13 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" +param-case@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + param-case@^3.0.3: version "3.0.4" resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -8699,7 +8827,7 @@ pluralize@^7.0.0: resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== -portfinder@^1.0.26: +portfinder@^1.0.13, portfinder@^1.0.25, portfinder@^1.0.26: version "1.0.28" resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== @@ -9345,6 +9473,11 @@ promise-inflight@^1.0.1: resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +promise-limit@^2.5.0: + version "2.7.0" + resolved "https://registry.npmjs.org/promise-limit/-/promise-limit-2.7.0.tgz#eb5737c33342a030eaeaecea9b3d3a93cb592b26" + integrity sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw== + promise-retry@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" @@ -9484,6 +9617,20 @@ puppeteer-extra@^3.1.15: debug "^4.1.1" deepmerge "^4.2.2" +puppeteer@^1.7.0: + version "1.20.0" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz#e3d267786f74e1d87cf2d15acc59177f471bbe38" + integrity sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ== + dependencies: + debug "^4.1.0" + extract-zip "^1.6.6" + https-proxy-agent "^2.2.1" + mime "^2.0.3" + progress "^2.0.1" + proxy-from-env "^1.0.0" + rimraf "^2.6.1" + ws "^6.1.0" + puppeteer@^5.3.0: version "5.4.1" resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-5.4.1.tgz#f2038eb23a0f593ed2cce0d6e7cd5c43aecd6756" @@ -9512,6 +9659,11 @@ qs@6.7.0: resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@^6.4.0: + version "6.9.6" + resolved "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== + qs@~6.5.2: version "6.5.2" resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -10137,7 +10289,7 @@ rimraf@2.6.3, rimraf@~2.6.2: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -10269,6 +10421,11 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +secure-compare@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" + integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -11441,6 +11598,11 @@ uglify-js@^3.1.4: resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.5.tgz#d6788bc83cf35ff18ea78a65763e480803409bc6" integrity sha512-btvv/baMqe7HxP7zJSF7Uc16h1mSfuuSplT0/qdjxseesDU+yYzH33eHBH+eMdeRXwujXspaCTooWHQVVBh09w== +uglify-js@^3.5.1: + version "3.12.8" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.8.tgz#a82e6e53c9be14f7382de3d068ef1e26e7d4aaf8" + integrity sha512-fvBeuXOsvqjecUtF/l1dwsrrf5y2BCUk9AOJGzGcm6tE7vegku5u/YvqjyDaAGr422PLoLnrxg3EnRvTqsdC1w== + uid-number@0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -11512,6 +11674,13 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +union@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" + integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== + dependencies: + qs "^6.4.0" + uniq@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -11612,6 +11781,11 @@ upath@^1.0.2, upath@^1.1.1, upath@^1.2.0: resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + uri-js@^4.2.2: version "4.4.0" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" @@ -11624,6 +11798,11 @@ urix@^0.1.0: resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= +url-join@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" + integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= + url-parse@^1.4.3, url-parse@^1.4.7: version "1.4.7" resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" @@ -12088,7 +12267,7 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@^6.2.1: +ws@^6.1.0, ws@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== From b0b8baf7371e32d0a1c49936ecbc69a4ba63190d Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 19 Feb 2021 13:15:38 +0800 Subject: [PATCH 194/352] feat: prerender for router --- yarn.lock | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/yarn.lock b/yarn.lock index f7d8f181..3db09c94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3888,6 +3888,15 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" +crd-seed@0.2.24: + version "0.2.24" + resolved "https://registry.npmjs.org/crd-seed/-/crd-seed-0.2.24.tgz#50ace28c8fe1c96a3cbef259ffcef08677eb5ba2" + integrity sha512-YwQKdCh3LNkQxOqnLeKPmhpfMuNVT1uGh4hhkEF/8yQ465sfnTKtntflVvOIRpF6DAr8SBCpiILXyw8xkxaD/g== + dependencies: + react-markdown "^3.3.0" + react-router-dom "^4.2.2" + react-switch "^5.0.1" + cross-fetch@2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" From 41819783d4f1141b124b41a14dbb7c92620466c2 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 19 Feb 2021 13:25:58 +0800 Subject: [PATCH 195/352] feat: prerender for router --- packages/scripts/src/conf/webpack.config.prod.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 6f822dad..f30a48d2 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -18,15 +18,10 @@ module.exports = function (cmd) { const docsConfig = getDocsConfig() config.mode = 'production' config.entry = [paths.appIndexJs] - // config.entry = { - // test1: [paths.appIndexJs], - // test2: [paths.appIndexJs], - // } // config.output.filename = 'js/[hash:8].js' // config.output.filename = 'static/js/[name].bundle.js' - // config.output.chunkFilename = 'js/[name].[hash:8].js' config.output.chunkFilename = 'js/[name].[hash:8].js' - config.output.publicPath = '/' + config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}` : '/' config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { @@ -168,7 +163,6 @@ module.exports = function (cmd) { // outputDir: path.join(__dirname, 'prerendered'), // outputDir: `${paths.docsBuildDist}/prerendered`, // Required - Routes to render. - // routes: ['/', '/#/README', '/#/快速上手'], routes: ['/', '/README', '/快速上手', '/404'], // Server configuration options. // server: { From af16c6b5bfe6a47c0c6566bf65bbd03ab6c7fe74 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 19 Feb 2021 18:58:09 +0800 Subject: [PATCH 196/352] feat: prerender for router --- packages/crd-seed/index.js | 8 ++++++-- packages/crd-seed/layout/index.js | 16 +++++++++------- packages/scripts/src/conf/webpack.config.dev.js | 3 +++ packages/scripts/src/conf/webpack.config.prod.js | 4 ++++ 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 9979f7c1..685b9a5b 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -5,14 +5,18 @@ import './index.less' // run in the Web/Router.js const ThemeSeed = (props) => { + // eslint-disable-next-line no-undef + const { repo } = DOCSCONFIG || {} + // eslint-disable-next-line no-undef + const ifProd = env === 'prod' return ( } /> { return }} diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 0d796d73..d92373c4 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -28,6 +28,8 @@ function BasicLayout({ const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) const [selectedKey, setSelectedKey] = useState('') const curOpenKeys = getOpenSubMenuKeys(pathname, menuOpenKeys) + // eslint-disable-next-line no-undef + const ifProd = env === 'prod' useEffect(() => { // eslint-disable-next-line no-use-before-define @@ -85,7 +87,7 @@ function BasicLayout({ : item.title} : @@ -205,8 +207,8 @@ function BasicLayout({ [`${styles.menuMask}`]: isMobile && !inlineCollapsed, })} onClick={(e) => { - e.stopPropagation(); - setInlineCollapsed(true); + e.stopPropagation() + setInlineCollapsed(true) }} /> @@ -221,14 +223,14 @@ function BasicLayout({ > {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} - + {routeData.map((item) => { return ( { const Comp = item.component; return ; @@ -236,7 +238,7 @@ function BasicLayout({ /> ); })} - + {renderPageFooter()}
@@ -246,7 +248,7 @@ function BasicLayout({
Date: Sat, 20 Feb 2021 09:52:13 +0800 Subject: [PATCH 197/352] feat: prerender for router --- packages/crd-seed/layout/index.js | 5 +++-- packages/scripts/src/conf/webpack.config.prod.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index d92373c4..9ec8213d 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -225,12 +225,13 @@ function BasicLayout({ {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} {routeData.map((item) => { + console.log('item.path', item.path) return ( { const Comp = item.component; return ; @@ -242,7 +243,7 @@ function BasicLayout({ {renderPageFooter()}
- ); + ) } return (
diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index dffa9fe0..0837cd1b 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -167,7 +167,7 @@ module.exports = function (cmd) { // outputDir: path.join(__dirname, 'prerendered'), // outputDir: `${paths.docsBuildDist}/prerendered`, // Required - Routes to render. - routes: ['/', '/README', '/快速上手', '/404'], + routes: ['/create-react-doc', '/create-react-doc/README', '/create-react-doc/快速上手', '/create-react-doc/404'], // Server configuration options. // server: { // // Normally a free port is autodetected, but feel free to set this if needed. From 57ef77d5abafb961a262312be0c00635db6570ee Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 20 Feb 2021 13:11:43 +0800 Subject: [PATCH 198/352] feat: prerender for router --- packages/crd-seed/index.js | 8 ++++---- packages/crd-seed/layout/index.js | 14 ++++++-------- packages/crd-seed/utils/index.js | 8 +++++++- packages/scripts/src/conf/webpack.config.prod.js | 13 +++++++++---- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 685b9a5b..47b9aef8 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -1,22 +1,22 @@ import { Switch, Route } from 'react-router-dom' import BasicLayout from './layout' import NoMatch from './component/NoMatch' +import { ifAddPrefix } from './utils' import './index.less' // run in the Web/Router.js const ThemeSeed = (props) => { // eslint-disable-next-line no-undef const { repo } = DOCSCONFIG || {} - // eslint-disable-next-line no-undef - const ifProd = env === 'prod' + return ( } /> { return }} diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 9ec8213d..f53201e7 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -8,7 +8,7 @@ import Affix from '../component/Affix' import Header from '../component/Header' import Footer from '../component/Footer' import languageMap from '../language' -import { isMobile } from '../utils' +import { isMobile, ifAddPrefix } from '../utils' import { getOpenSubMenuKeys } from './utils' import logo from '../crd.logo.svg' import styles from './index.less' @@ -28,8 +28,6 @@ function BasicLayout({ const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) const [selectedKey, setSelectedKey] = useState('') const curOpenKeys = getOpenSubMenuKeys(pathname, menuOpenKeys) - // eslint-disable-next-line no-undef - const ifProd = env === 'prod' useEffect(() => { // eslint-disable-next-line no-use-before-define @@ -87,7 +85,7 @@ function BasicLayout({ : item.title} : @@ -223,7 +221,7 @@ function BasicLayout({ > {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} - + {routeData.map((item) => { console.log('item.path', item.path) return ( @@ -231,7 +229,7 @@ function BasicLayout({ key={item.path} exact // path={window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.prerender ? pathname : item.path} - path={ifProd ? `/${repo}${item.path}` : item.path} + path={ifAddPrefix ? `/${repo}${item.path}` : item.path} render={() => { const Comp = item.component; return ; @@ -239,7 +237,7 @@ function BasicLayout({ /> ); })} - + {renderPageFooter()}
@@ -249,7 +247,7 @@ function BasicLayout({
{ if (item.oneOf) { @@ -159,15 +161,18 @@ module.exports = function (cmd) { // both options are optional filename: 'css/[contenthash].css', chunkFilename: 'css/[id].css', + // filename: docsConfig.repo ? `${docsConfig.repo}/css/[contenthash].css` : 'css/[contenthash].css', + // chunkFilename: docsConfig.repo ? `${docsConfig.repo}/css/[id].css` : 'css/[id].css', }), new PrerenderSPAPlugin({ // Required - The path to the webpack-outputted app to prerender. staticDir: paths.docsBuildDist, - // staticDir: '../../../theme/index.html', - // outputDir: path.join(__dirname, 'prerendered'), - // outputDir: `${paths.docsBuildDist}/prerendered`, + outputDir: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, + indexPath: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}/index.html` : `${paths.docsBuildDist}/index.html`, + // indexPath: `${paths.docsBuildDist}/index.html`, // Required - Routes to render. - routes: ['/create-react-doc', '/create-react-doc/README', '/create-react-doc/快速上手', '/create-react-doc/404'], + // routes: ['/create-react-doc', '/create-react-doc/README', '/create-react-doc/快速上手', '/create-react-doc/404'], + routes: ['/', '/README', '/快速上手', '/404'], // Server configuration options. // server: { // // Normally a free port is autodetected, but feel free to set this if needed. From cac68c54c066b837e80c2a27d83eb6ee4c2f209d Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 21 Feb 2021 16:24:22 +0800 Subject: [PATCH 199/352] feat: prepare for seo --- gh-pages.js | 16 +++ package.json | 5 +- packages/crd-seed/index.js | 7 +- packages/crd-seed/layout/index.js | 33 +++--- packages/crd-seed/utils/index.js | 2 +- .../scripts/src/conf/webpack.config.prod.js | 6 +- packages/theme/index.js | 3 + packages/theme/markdown/index.js | 1 + packages/theme/utils/index.js | 5 + yarn.lock | 100 +++++------------- 10 files changed, 80 insertions(+), 98 deletions(-) create mode 100644 gh-pages.js create mode 100644 packages/theme/utils/index.js diff --git a/gh-pages.js b/gh-pages.js new file mode 100644 index 00000000..a90d9736 --- /dev/null +++ b/gh-pages.js @@ -0,0 +1,16 @@ +const ghPages = require('gh-pages') + +ghPages.publish( + '.crd-dist', + { + branch: 'gh-pages', + repo: 'https://github.com/MuYunyun/create-react-doc.git', + }, + (error) => { + if (error) { + console.error(error) + } else { + console.log('docs sync success') + } + } +) diff --git a/package.json b/package.json index c26f7374..635056b6 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "deploy": "node packages/create-react-doc/index.js deploy", "release": "lerna publish", "release-qa": "lerna publish --npm-tag=beta", - "dev": "http-server .crd-dist -p 8080" + "cleanup": "rm -rf node_modules/gh-pages/.cache", + "deploy:site": "npm run cleanup && node gh-pages" }, "repository": { "type": "git", @@ -38,7 +39,7 @@ "eslint-plugin-import": "^2.11.0", "eslint-plugin-jsx-a11y": "^6.0.3", "eslint-plugin-react": "^7.7.0", - "http-server": "^0.12.3", + "gh-pages": "^3.1.0", "lerna": "^3.22.1" }, "dependencies": { diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 47b9aef8..8daaa152 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -9,14 +9,17 @@ const ThemeSeed = (props) => { // eslint-disable-next-line no-undef const { repo } = DOCSCONFIG || {} + console.log('themeSeed') return ( } /> { return }} diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index f53201e7..dd41e17c 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -1,5 +1,4 @@ import { useState, useEffect } from 'react' -// import { Switch, Link, Route } from 'react-router-dom' import { Switch, Link, Route, Redirect } from 'react-router-dom' import cx from 'classnames' import Menu from '../component/Menu' @@ -8,7 +7,7 @@ import Affix from '../component/Affix' import Header from '../component/Header' import Footer from '../component/Footer' import languageMap from '../language' -import { isMobile, ifAddPrefix } from '../utils' +import { isMobile, ifAddPrefix, ifProd } from '../utils' import { getOpenSubMenuKeys } from './utils' import logo from '../crd.logo.svg' import styles from './index.less' @@ -149,7 +148,7 @@ function BasicLayout({ ) : null}
- ); + ) } /** * this section is to show article's relevant information @@ -178,18 +177,18 @@ function BasicLayout({ ): null} - ); + ) } const isCurentChildren = () => { - const getRoute = routeData.filter((data) => pathname.indexOf(data.path)); - const article = getRoute.length > 0 ? getRoute[0].article : null; + const getRoute = routeData.filter((data) => pathname.indexOf(data.path)) + const article = getRoute.length > 0 ? getRoute[0].article : null const childs = menuSource.filter( (data) => article === data.article && data.children && data.children.length > 1 - ); - return childs.length > 0; - }; - const isChild = isCurentChildren(); + ) + return childs.length > 0 + } + const isChild = isCurentChildren() const renderMenuContainer = () => { return ( <> @@ -210,9 +209,12 @@ function BasicLayout({ }} /> - ); + ) } + + const carryRepoInProd = ifProd && repo const renderContent = () => { + console.log('render content') return (
{routeData.map((item) => { - console.log('item.path', item.path) return ( { - const Comp = item.component; - return ; + console.log('Render Route') + const Comp = item.component + return }} /> - ); + ) })} diff --git a/packages/crd-seed/utils/index.js b/packages/crd-seed/utils/index.js index 5f5cb205..a57dc479 100644 --- a/packages/crd-seed/utils/index.js +++ b/packages/crd-seed/utils/index.js @@ -9,4 +9,4 @@ const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.p // decide to if add prefix for path, eg: '/' or '/${repo}' const ifAddPrefix = ifProd && !ifPrerender -export { isMobile, ifAddPrefix } +export { isMobile, ifAddPrefix, ifProd } diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 14a8f1bf..e2cb8190 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -23,9 +23,11 @@ module.exports = function (cmd) { // config.output.filename = 'static/js/[name].bundle.js' // config.output.chunkFilename = docsConfig.repo ? `${docsConfig.repo}/js/[name].[hash:8].js` : 'js/[name].[hash:8].js' config.output.chunkFilename = 'js/[name].[hash:8].js' - config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}` : '/' - config.output.path = docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, + config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}/` : '/' + // config.output.publicPath = '/' + config.output.path = docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist + // console.log('upath.normalizeSafe(paths.projectPath)', upath.normalizeSafe(paths.projectPath)) config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { const loaders = [] diff --git a/packages/theme/index.js b/packages/theme/index.js index 2e295724..3ba857f5 100644 --- a/packages/theme/index.js +++ b/packages/theme/index.js @@ -1,9 +1,12 @@ /* eslint-disable global-require */ // import Loading from './component/Loading' import Markdown from './routes/Pages' +import { ifProd, ifPrerender } from './utils' import './index.less' export default function (Lazyload, props) { + /** todo: how to avoid the extra logic */ + // if (ifProd && !ifPrerender) return null // const LoadableComponent = Lazyload({ // component: () => import('./routes/Pages'), // LoadingComponent: Loading, diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index 1768ba69..27a4f5fe 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -31,6 +31,7 @@ function Markdown({ props }) { if (type === 'directory') { filename = formatPath(relativeMd) } + console.log('render markdown', `__project_root__/.cache/md/${filename}.md`) import(`__project_root__/.cache/md/${filename}.md`).then((data) => { setMarkdownStr(data.default || data) }) diff --git a/packages/theme/utils/index.js b/packages/theme/utils/index.js new file mode 100644 index 00000000..3c491ae1 --- /dev/null +++ b/packages/theme/utils/index.js @@ -0,0 +1,5 @@ +// eslint-disable-next-line no-undef +const ifProd = env === 'prod' +const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.prerender + +export { ifProd, ifPrerender } diff --git a/yarn.lock b/yarn.lock index 3db09c94..cc6d6f46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2691,7 +2691,7 @@ async@2.6.1: dependencies: lodash "^4.17.10" -async@^2.6.2: +async@^2.6.1, async@^2.6.2: version "2.6.3" resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -2829,11 +2829,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -basic-auth@^1.0.3: - version "1.1.0" - resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" - integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= - batch@0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -3568,11 +3563,6 @@ colors-cli@^1.0.13, colors-cli@^1.0.17, colors-cli@^1.0.26: resolved "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.27.tgz#1a33f6cfc013cdb55e50bac0bff1a8f5f0866cf8" integrity sha512-oyHDobdhzZDRHzVqOX+0owvXkS6recku25PUutP89BggJ3HikYTBpa7HZOoiAwhKFgHdyfJ+YNJyqxM4kBcEUg== -colors@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - colors@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -3598,7 +3588,7 @@ commander@2.15.1: resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== -commander@^2.12.2, commander@^2.19.0, commander@^2.20.0: +commander@^2.12.2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3873,11 +3863,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -corser@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" - integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= - cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: version "5.2.1" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -4551,16 +4536,6 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -ecstatic@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48" - integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog== - dependencies: - he "^1.1.1" - mime "^1.6.0" - minimist "^1.1.0" - url-join "^2.0.5" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4576,6 +4551,11 @@ electron-to-chromium@^1.3.634: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.635.tgz#8d1591eeca6b257d380061a2c04f0b3cc6c9e33b" integrity sha512-RRriZOLs9CpW6KTLmgBqyUdnY0QNqqWs0HOtuQGGEMizOTNNn1P7sGRBxARnUeLejOsgwjDyRqT3E/CSst02ZQ== +email-addresses@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb" + integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -5691,6 +5671,19 @@ gh-pages@^1.2.0: graceful-fs "4.1.11" rimraf "^2.6.2" +gh-pages@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-3.1.0.tgz#ec3ed0f6a6e3fc3d888758fa018f08191c96bd55" + integrity sha512-3b1rly9kuf3/dXsT8+ZxP0UhNLOo1CItj+3e31yUVcaph/yDsJ9RzD7JOw5o5zpBTJVQLlJAASNkUfepi9fe2w== + dependencies: + async "^2.6.1" + commander "^2.18.0" + email-addresses "^3.0.1" + filenamify-url "^1.0.0" + find-cache-dir "^3.3.1" + fs-extra "^8.1.0" + globby "^6.1.0" + git-raw-commits@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" @@ -5944,7 +5937,7 @@ has@^1.0.0, has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" -he@^1.1.1, he@^1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -6153,7 +6146,7 @@ http-proxy-middleware@^0.18.0: lodash "^4.17.5" micromatch "^3.1.9" -http-proxy@^1.16.2, http-proxy@^1.17.0, http-proxy@^1.18.0: +http-proxy@^1.16.2, http-proxy@^1.17.0: version "1.18.1" resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -6162,22 +6155,6 @@ http-proxy@^1.16.2, http-proxy@^1.17.0, http-proxy@^1.18.0: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-server@^0.12.3: - version "0.12.3" - resolved "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37" - integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA== - dependencies: - basic-auth "^1.0.3" - colors "^1.4.0" - corser "^2.0.1" - ecstatic "^3.3.2" - http-proxy "^1.18.0" - minimist "^1.2.5" - opener "^1.5.1" - portfinder "^1.0.25" - secure-compare "3.0.1" - union "~0.5.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -7641,7 +7618,7 @@ mime-types@^2.1.27: dependencies: mime-db "1.45.0" -mime@1.6.0, mime@^1.4.1, mime@^1.6.0: +mime@1.6.0, mime@^1.4.1: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -7716,7 +7693,7 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -8370,11 +8347,6 @@ open@^7.0.0: is-docker "^2.0.0" is-wsl "^2.1.1" -opener@^1.5.1: - version "1.5.2" - resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - opn@^5.5.0: version "5.5.0" resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -8836,7 +8808,7 @@ pluralize@^7.0.0: resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== -portfinder@^1.0.13, portfinder@^1.0.25, portfinder@^1.0.26: +portfinder@^1.0.13, portfinder@^1.0.26: version "1.0.28" resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== @@ -9668,11 +9640,6 @@ qs@6.7.0: resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@^6.4.0: - version "6.9.6" - resolved "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== - qs@~6.5.2: version "6.5.2" resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -10430,11 +10397,6 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -secure-compare@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" - integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= - select-hose@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -11683,13 +11645,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -union@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" - integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== - dependencies: - qs "^6.4.0" - uniq@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -11807,11 +11762,6 @@ urix@^0.1.0: resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-join@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" - integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= - url-parse@^1.4.3, url-parse@^1.4.7: version "1.4.7" resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" From 25cb7d53de1bdd8bbcf53ba59817f69c12a2c06e Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 23 Feb 2021 18:58:53 +0800 Subject: [PATCH 200/352] feat: prepare for seo --- README.md | 5 ++-- aaa/b.md | 1 + config.yml | 2 +- ...30\350\256\244\344\270\273\351\242\230.md" | 2 +- packages/crd-seed/component/Menu/MenuItem.js | 2 +- packages/crd-seed/index.js | 1 - packages/crd-seed/layout/index.js | 30 +++++++------------ packages/scripts/package.json | 2 +- .../scripts/src/conf/webpack.config.prod.js | 16 +++++----- packages/scripts/src/web/Router.js | 1 - packages/theme/index.js | 2 +- packages/theme/markdown/index.js | 1 - yarn.lock | 18 +++++------ 13 files changed, 37 insertions(+), 46 deletions(-) create mode 100644 aaa/b.md diff --git a/README.md b/README.md index bb6aae72..45e4440d 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,8 @@ * 建站理念: 文件即站点 (Files as a Site)。 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 -* 性能: 文档支持懒加载提升站点加载速度。 +* 性能: 通过预渲染、懒加载大幅提升站点加载速度。 +* SEO: 支持 SEO, 让文档更易被搜索。 * 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/#/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 @@ -39,7 +40,7 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * 适配移动、PC 多端展示。 * 支持暗黑模式。 -* 文档支持内嵌 codepen、codesansbox。 +* 文档支持内嵌 codepen、codesandbox。 * GitHub 联动。 使用该主题搭建的站点有: diff --git a/aaa/b.md b/aaa/b.md new file mode 100644 index 00000000..b6fc4c62 --- /dev/null +++ b/aaa/b.md @@ -0,0 +1 @@ +hello \ No newline at end of file diff --git a/config.yml b/config.yml index 96a25bf7..d7dbbab0 100644 --- a/config.yml +++ b/config.yml @@ -5,7 +5,7 @@ title: Create React Doc # Menu dir ## you can also set detailed dir, such as BasicSkill/css -menu: docs/快速上手.md,docs/默认主题.md,docs/站点发布.md,docs/高阶用法.md,docs/自定义主题.md,docs/其它工具.md,docs/更新日志.md +menu: docs/快速上手.md,docs/默认主题.md,docs/站点发布.md,docs/高阶用法.md,docs/自定义主题.md,docs/其它工具.md,docs/更新日志.md,aaa ## set init open menu keys # menuOpenKeys: diff --git "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 619083ec..29aecc48 100644 --- "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -4,7 +4,7 @@ create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/creat * 适配移动、PC 多端展示。 * 支持暗黑模式。 -* 文档支持内嵌 codepen、codesansbox。 +* 文档支持内嵌 codepen、codesandbox。 * GitHub 联动。 使用该主题搭建的站点有: diff --git a/packages/crd-seed/component/Menu/MenuItem.js b/packages/crd-seed/component/Menu/MenuItem.js index 4ef6b9ec..826e886b 100644 --- a/packages/crd-seed/component/Menu/MenuItem.js +++ b/packages/crd-seed/component/Menu/MenuItem.js @@ -19,7 +19,7 @@ function MenuItem({ return (
  • -1, })} onMouseEnter={() => { onHoverKey(keyValue) diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 8daaa152..13a420cb 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -9,7 +9,6 @@ const ThemeSeed = (props) => { // eslint-disable-next-line no-undef const { repo } = DOCSCONFIG || {} - console.log('themeSeed') return ( ) : ( - window.location.href.indexOf('.crd-dist') > -1 - ? - {item && item.mdconf && item.mdconf.title - ? item.mdconf.title - : item.title} - - : - {item && item.mdconf && item.mdconf.title - ? item.mdconf.title - : item.title} - + -1} + > + {item && item.mdconf && item.mdconf.title + ? item.mdconf.title + : item.title} + ) } /> @@ -172,7 +166,7 @@ function BasicLayout({ {languageMap[language].modify_tm}: - {routeData.find((data) => pathname.indexOf(data.path)).props.mtime} + {routeData.find((data) => pathname.indexOf(data.path) > -1).props.mtime} ): null} @@ -180,7 +174,7 @@ function BasicLayout({ ) } const isCurentChildren = () => { - const getRoute = routeData.filter((data) => pathname.indexOf(data.path)) + const getRoute = routeData.filter((data) => pathname.indexOf(data.path) > -1) const article = getRoute.length > 0 ? getRoute[0].article : null const childs = menuSource.filter( (data) => @@ -214,7 +208,6 @@ function BasicLayout({ const carryRepoInProd = ifProd && repo const renderContent = () => { - console.log('render content') return (
    { - console.log('Render Route') const Comp = item.component return }} diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 06c5b994..99b99f90 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -15,7 +15,7 @@ "@babel/preset-env": "^7.3.4", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.3.4", - "@dreysolano/prerender-spa-plugin": "^1.0.3", + "crd-prerender-spa-plugin": "^0.1.0", "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2", "babel-eslint": "^8.0.1", "babel-loader": "^8.0.5", diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index e2cb8190..abbec82d 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -5,9 +5,10 @@ const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const CopyMarkdownImageWebpackPlugin = require('copy-markdown-image-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') -const PrerenderSPAPlugin = require('@dreysolano/prerender-spa-plugin') +const PrerenderSPAPlugin = require('crd-prerender-spa-plugin') // const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +const fs = require('fs-extra') const { getDocsConfig } = require('../utils') const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') @@ -171,15 +172,14 @@ module.exports = function (cmd) { staticDir: paths.docsBuildDist, outputDir: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, indexPath: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}/index.html` : `${paths.docsBuildDist}/index.html`, - // indexPath: `${paths.docsBuildDist}/index.html`, // Required - Routes to render. - // routes: ['/create-react-doc', '/create-react-doc/README', '/create-react-doc/快速上手', '/create-react-doc/404'], routes: ['/', '/README', '/快速上手', '/404'], - // Server configuration options. - // server: { - // // Normally a free port is autodetected, but feel free to set this if needed. - // port: 8001, - // }, + successCb: async () => { + if (docsConfig.repo) { + await fs.move(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) + console.log('generate prerender file success!') + } + }, // The actual renderer to use. (Feel free to write your own) // Available renderers: https://github.com/Tribex/prerenderer/tree/master/renderers renderer: new Renderer({ diff --git a/packages/scripts/src/web/Router.js b/packages/scripts/src/web/Router.js index 6e325fb2..9f5281d4 100644 --- a/packages/scripts/src/web/Router.js +++ b/packages/scripts/src/web/Router.js @@ -1,7 +1,6 @@ // import { HashRouter, withRouter, Route, Switch } from 'react-router-dom' import { BrowserRouter, withRouter, Route, Switch } from 'react-router-dom' import theme from 'crd-theme' -// todo https://github.com/jaywcjlove/react-dynamic-loadable/blob/master/packages/core/src/index.jsx import lazyload from './lazyload' import menuSource from './crd.json' diff --git a/packages/theme/index.js b/packages/theme/index.js index 3ba857f5..cba64f22 100644 --- a/packages/theme/index.js +++ b/packages/theme/index.js @@ -1,7 +1,7 @@ /* eslint-disable global-require */ // import Loading from './component/Loading' import Markdown from './routes/Pages' -import { ifProd, ifPrerender } from './utils' +// import { ifProd, ifPrerender } from './utils' import './index.less' export default function (Lazyload, props) { diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index 27a4f5fe..1768ba69 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -31,7 +31,6 @@ function Markdown({ props }) { if (type === 'directory') { filename = formatPath(relativeMd) } - console.log('render markdown', `__project_root__/.cache/md/${filename}.md`) import(`__project_root__/.cache/md/${filename}.md`).then((data) => { setMarkdownStr(data.default || data) }) diff --git a/yarn.lock b/yarn.lock index cc6d6f46..d94a8c81 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1037,15 +1037,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@dreysolano/prerender-spa-plugin@^1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/@dreysolano/prerender-spa-plugin/-/prerender-spa-plugin-1.0.3.tgz#3e05f7ebfe88ac5a5a17a3bdbb7ce517a2fef57a" - integrity sha512-AIYhpslyX3T1yyQ55I10GuuB+HeIgwOalOTJLGgMYvwdn+SyQk0fKlsZA0ScafDssY4OHoqcG55yFBrpz4zM7Q== - dependencies: - "@prerenderer/prerenderer" "^0.7.2" - "@prerenderer/renderer-puppeteer" "^0.2.0" - html-minifier "^4.0.0" - "@eslint/eslintrc@^0.2.1": version "0.2.1" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" @@ -3873,6 +3864,15 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" +crd-prerender-spa-plugin@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/crd-prerender-spa-plugin/-/crd-prerender-spa-plugin-0.1.0.tgz#897a5a44843f94e6aebb062b84f71d5dec622443" + integrity sha512-wu2Je38HMN7dOPA2RfrrxfAkDmmKzFA+8TOiY+vd5W4+lgiremfIa7HAp1pbAm0+DKKlS/vau66uI42GCLaO9Q== + dependencies: + "@prerenderer/prerenderer" "^0.7.2" + "@prerenderer/renderer-puppeteer" "^0.2.0" + html-minifier "^4.0.0" + crd-seed@0.2.24: version "0.2.24" resolved "https://registry.npmjs.org/crd-seed/-/crd-seed-0.2.24.tgz#50ace28c8fe1c96a3cbef259ffcef08677eb5ba2" From eec48af60464567dc69632f9c6186e68ceba7d8a Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 24 Feb 2021 00:11:13 +0800 Subject: [PATCH 201/352] feat: update --- config.yml | 1 + packages/scripts/src/conf/webpack.config.dev.js | 1 + packages/scripts/src/conf/webpack.config.prod.js | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/config.yml b/config.yml index d7dbbab0..c3e9ac1d 100644 --- a/config.yml +++ b/config.yml @@ -5,6 +5,7 @@ title: Create React Doc # Menu dir ## you can also set detailed dir, such as BasicSkill/css +## todo: auto menu menu: docs/快速上手.md,docs/默认主题.md,docs/站点发布.md,docs/高阶用法.md,docs/自定义主题.md,docs/其它工具.md,docs/更新日志.md,aaa ## set init open menu keys # menuOpenKeys: diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index 54b3f533..32e91567 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -17,6 +17,7 @@ module.exports = function (cmd) { require.resolve('webpack-hot-dev-clients/webpackHotDevClient'), paths.appIndexJs, ] + config.output.publicPath = '/' config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { const loaders = [] diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index abbec82d..44fdc554 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -173,7 +173,7 @@ module.exports = function (cmd) { outputDir: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, indexPath: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}/index.html` : `${paths.docsBuildDist}/index.html`, // Required - Routes to render. - routes: ['/', '/README', '/快速上手', '/404'], + routes: ['/', '/README', '/快速上手', '/404', '/aaa/b'], successCb: async () => { if (docsConfig.repo) { await fs.move(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) From 39fe15039c2785c5f4334afea0911be844a1fdd6 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 24 Feb 2021 13:41:04 +0800 Subject: [PATCH 202/352] feat: prepare for seo --- .eslintrc.js | 1 + config.yml | 11 +++++- ...64\346\226\260\346\227\245\345\277\227.md" | 8 +++++ ...30\350\256\244\344\270\273\351\242\230.md" | 2 +- packages/create-react-doc/index.js | 1 - .../scripts/src/conf/getPrerenderRoutes.js | 34 +++++++++++++++++++ packages/scripts/src/conf/path.js | 2 +- .../scripts/src/conf/webpack.config.dev.js | 1 - .../scripts/src/conf/webpack.config.prod.js | 8 ++--- 9 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 packages/scripts/src/conf/getPrerenderRoutes.js diff --git a/.eslintrc.js b/.eslintrc.js index b45d477a..bd87608d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -79,6 +79,7 @@ const eslintrc = { "no-use-before-define": 0, "semi": ["error", "never"], "quotes": 0, + "no-plusplus": 0 } } diff --git a/config.yml b/config.yml index c3e9ac1d..100185c0 100644 --- a/config.yml +++ b/config.yml @@ -6,7 +6,16 @@ title: Create React Doc # Menu dir ## you can also set detailed dir, such as BasicSkill/css ## todo: auto menu -menu: docs/快速上手.md,docs/默认主题.md,docs/站点发布.md,docs/高阶用法.md,docs/自定义主题.md,docs/其它工具.md,docs/更新日志.md,aaa +menu: [ + docs/快速上手.md, + docs/默认主题.md, + docs/站点发布.md, + docs/高阶用法.md, + docs/自定义主题.md, + docs/其它工具.md, + docs/更新日志.md, + aaa +] ## set init open menu keys # menuOpenKeys: diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index efd2decd..a1079731 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,6 +2,14 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.0.0 + +Todo + +- **Feature** + + - 🚀 menu 字段从 string 调整为 array。 + ### 0.3.30 - **Feature** diff --git "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 29aecc48..2823ee8a 100644 --- "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -25,7 +25,7 @@ create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/creat | 属性名 | 作用 | 类型 | 默认 | | :------------: | :-------------------------------: | :---------: | :------: | | title | 站点名 | string | | -| menu | 作为站点菜单的文件/文件夹路径 | string | | +| menu | 作为站点菜单的文件/文件夹路径 | string[] | | | menuOpenKeys | 默认展开菜单的文件夹路径 | string | | | user | Github 用户名 | string | | | repo | Github 项目名 | string | | diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index 44ba81ea..05fabade 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -69,7 +69,6 @@ if (start || build) { docsConfig && docsConfig.menu - .split(',') .forEach(itemPath => program.markdownPaths.push(path.join(process.cwd(), itemPath)) ) diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js new file mode 100644 index 00000000..fb4cb307 --- /dev/null +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -0,0 +1,34 @@ +const fs = require('fs') +const { getDocsConfig } = require('../utils') +const paths = require('./path') + +// eg: [docs/quick_start.md, a] +// output: [docs/quick_start, a/b, a/b/c] +const getPrerenderRoutes = () => { + const docsConfig = getDocsConfig() + const menu = docsConfig ? docsConfig.menu : [] + const result = [] + + dfs(menu, result) +} + +const dfs = (arr, result) => { + const source = `${paths.docsBase}/${arr[i]}` + for (let i = 0; i < arr.length; i++) { + const stats = fs.statSync(source) + const isFile = stats.isFile() + const isDirectory = stats.isDirectory() + + if (isFile && arr[i].indexOf('.md') > -1) { + result.push(arr[i]) + } + + if (isDirectory) { + const dirArr = fs.readdirSync(source) + console.log('dirArr', dirArr) + // dfs( , result) + } + } +} + +module.exports = getPrerenderRoutes diff --git a/packages/scripts/src/conf/path.js b/packages/scripts/src/conf/path.js index 521d0636..424e5296 100644 --- a/packages/scripts/src/conf/path.js +++ b/packages/scripts/src/conf/path.js @@ -131,7 +131,7 @@ module.exports = { // markdown dir crdConf: getCrdConf(), docsGitIgnore: resolveApp('.gitignore'), - docsNodeModules: resolveApp(''), + docsBase: resolveApp(''), docsConfig: docsConfigPath, docsReadme: resolveApp('README.md'), docsBuildDist: resolveApp('.crd-dist'), diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index 32e91567..2d9ea5fe 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -120,7 +120,6 @@ module.exports = function (cmd) { template: paths.defaultHTMLPath, title: docsConfig && docsConfig.title ? docsConfig.title : 'Create React Doc', }), - // hot reload md file new CreateSpareWebpackPlugin({ // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 path: path.join(paths.cacheDirPath, './md'), diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 44fdc554..66feb1b8 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -13,6 +13,7 @@ const { getDocsConfig } = require('../utils') const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') const paths = require('./path') +const getPrerenderRoutes = require('./getPrerenderRoutes') const Renderer = PrerenderSPAPlugin.PuppeteerRenderer @@ -25,10 +26,8 @@ module.exports = function (cmd) { // config.output.chunkFilename = docsConfig.repo ? `${docsConfig.repo}/js/[name].[hash:8].js` : 'js/[name].[hash:8].js' config.output.chunkFilename = 'js/[name].[hash:8].js' config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}/` : '/' - // config.output.publicPath = '/' config.output.path = docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist - // console.log('upath.normalizeSafe(paths.projectPath)', upath.normalizeSafe(paths.projectPath)) config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { const loaders = [] @@ -148,7 +147,7 @@ module.exports = function (cmd) { toDir: config.output.path, }), new CreateSpareWebpackPlugin({ - // 备用文件目录,比对是否存在,不存在生成,根据sep 目录规则生成 + // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 path: path.join(paths.cacheDirPath, './md'), sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 directoryTrees: { @@ -173,7 +172,8 @@ module.exports = function (cmd) { outputDir: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, indexPath: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}/index.html` : `${paths.docsBuildDist}/index.html`, // Required - Routes to render. - routes: ['/', '/README', '/快速上手', '/404', '/aaa/b'], + // routes: ['/', '/README', '/快速上手', '/404', '/aaa/b'], + routes: getPrerenderRoutes(), successCb: async () => { if (docsConfig.repo) { await fs.move(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) From b142fe72a2fc9c277b10601e3d476e904d2978c8 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 25 Feb 2021 18:33:26 +0800 Subject: [PATCH 203/352] feat: prepare for seo --- aaa/ccc/d.md | 0 .../scripts/src/conf/getPrerenderRoutes.js | 28 ++++++++++++------- .../scripts/src/conf/webpack.config.prod.js | 8 +++++- 3 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 aaa/ccc/d.md diff --git a/aaa/ccc/d.md b/aaa/ccc/d.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index fb4cb307..23075e0f 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -1,32 +1,40 @@ const fs = require('fs') const { getDocsConfig } = require('../utils') -const paths = require('./path') // eg: [docs/quick_start.md, a] -// output: [docs/quick_start, a/b, a/b/c] +// output: [/quick_start, /a/b, /a/b/c] const getPrerenderRoutes = () => { const docsConfig = getDocsConfig() - const menu = docsConfig ? docsConfig.menu : [] + const menu = docsConfig && Array.isArray(docsConfig.menu) + ? docsConfig.menu.concat('README.md') + : [] const result = [] - - dfs(menu, result) + dfs(menu, result, '', true) + console.log('result', result) + return result } -const dfs = (arr, result) => { - const source = `${paths.docsBase}/${arr[i]}` +const dfs = (arr, result, prefix, isRoot) => { for (let i = 0; i < arr.length; i++) { + const source = `${prefix}${arr[i]}` const stats = fs.statSync(source) const isFile = stats.isFile() const isDirectory = stats.isDirectory() if (isFile && arr[i].indexOf('.md') > -1) { - result.push(arr[i]) + if (isRoot) { + // eg: 'a/b.md' + const splitArr = arr[i].split('/') + const lastSplitValue = splitArr[splitArr.length - 1] + result.push(`/${lastSplitValue.split('.md')[0]}`) + } else { + result.push(`/${prefix}${arr[i].split('.md')[0]}`) + } } if (isDirectory) { const dirArr = fs.readdirSync(source) - console.log('dirArr', dirArr) - // dfs( , result) + dfs(dirArr, result, `${source}/`, false) } } } diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 66feb1b8..a4c113c0 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -176,7 +176,13 @@ module.exports = function (cmd) { routes: getPrerenderRoutes(), successCb: async () => { if (docsConfig.repo) { - await fs.move(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) + console.log('from', `${paths.docsBuildDist}/${docsConfig.repo}`) + console.log('to', paths.docsBuildDist) + try { + await fs.move(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist, { overwrite: true }) + } catch (e) { + console.log('e123', e) + } console.log('generate prerender file success!') } }, From 609625a61d56281fdab0a14cf6ce72b465d118e2 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 25 Feb 2021 18:43:04 +0800 Subject: [PATCH 204/352] feat: prepare for seo --- packages/scripts/src/conf/webpack.config.prod.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index a4c113c0..7a692b91 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -176,6 +176,11 @@ module.exports = function (cmd) { routes: getPrerenderRoutes(), successCb: async () => { if (docsConfig.repo) { + const stats = fs.statSync(`${paths.docsBuildDist}/${docsConfig.repo}`) + const isFile = stats.isFile() + const isDirectory = stats.isDirectory() + console.log('isFile', isFile) + console.log('isDirectory', isDirectory) console.log('from', `${paths.docsBuildDist}/${docsConfig.repo}`) console.log('to', paths.docsBuildDist) try { From 66a25eddfe0372564cf23d4ad6ff785c2dcba1f1 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 25 Feb 2021 18:53:56 +0800 Subject: [PATCH 205/352] feat: prepare for seo --- packages/scripts/src/conf/webpack.config.prod.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 7a692b91..5021b28f 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -184,7 +184,7 @@ module.exports = function (cmd) { console.log('from', `${paths.docsBuildDist}/${docsConfig.repo}`) console.log('to', paths.docsBuildDist) try { - await fs.move(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist, { overwrite: true }) + await fs.copy(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) } catch (e) { console.log('e123', e) } From ed1df04ff68a53c1887872fc82ba56b722a579d1 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 25 Feb 2021 19:01:24 +0800 Subject: [PATCH 206/352] feat: prepare for seo --- packages/scripts/src/conf/webpack.config.prod.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 5021b28f..17f5c56d 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -176,18 +176,9 @@ module.exports = function (cmd) { routes: getPrerenderRoutes(), successCb: async () => { if (docsConfig.repo) { - const stats = fs.statSync(`${paths.docsBuildDist}/${docsConfig.repo}`) - const isFile = stats.isFile() - const isDirectory = stats.isDirectory() - console.log('isFile', isFile) - console.log('isDirectory', isDirectory) - console.log('from', `${paths.docsBuildDist}/${docsConfig.repo}`) - console.log('to', paths.docsBuildDist) - try { - await fs.copy(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) - } catch (e) { - console.log('e123', e) - } + // not use fs.move here or it'll throw error in github action + await fs.copy(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) + await fs.remove(`${paths.docsBuildDist}/${docsConfig.repo}`) console.log('generate prerender file success!') } }, From c3ff8f2eedaa204f1c8b95e0c659ee34710298ee Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 26 Feb 2021 20:16:09 +0800 Subject: [PATCH 207/352] feat: take README file as root index.html --- packages/crd-seed/component/NoMatch/index.js | 6 ++++-- packages/crd-seed/index.js | 4 ---- packages/crd-seed/layout/index.js | 14 ++++++-------- packages/crd-seed/utils/index.js | 2 +- packages/scripts/src/conf/getPrerenderRoutes.js | 4 ++-- packages/scripts/src/conf/webpack.config.prod.js | 2 ++ 6 files changed, 15 insertions(+), 17 deletions(-) diff --git a/packages/crd-seed/component/NoMatch/index.js b/packages/crd-seed/component/NoMatch/index.js index 0fe174fd..ada32511 100644 --- a/packages/crd-seed/component/NoMatch/index.js +++ b/packages/crd-seed/component/NoMatch/index.js @@ -1,7 +1,9 @@ -import { Link } from 'react-router-dom' +// import { Link } from 'react-router-dom' import styles from './index.less' const Footer = () => { + // eslint-disable-next-line no-undef + const { user, repo } = DOCSCONFIG || {} return ( @@ -9,7 +11,7 @@ const Footer = () => { diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 13a420cb..f276926a 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -1,14 +1,10 @@ import { Switch, Route } from 'react-router-dom' import BasicLayout from './layout' import NoMatch from './component/NoMatch' -import { ifAddPrefix } from './utils' import './index.less' // run in the Web/Router.js const ThemeSeed = (props) => { - // eslint-disable-next-line no-undef - const { repo } = DOCSCONFIG || {} - return ( { - // eslint-disable-next-line no-use-before-define - scrollToTop() - }, []) - - useEffect(() => { - // eslint-disable-next-line no-undef - INJECT?.inject?.() + if (ifPrerender) { + scrollToTop() + // eslint-disable-next-line no-undef + INJECT?.inject?.() + } }, []) useEffect(() => { diff --git a/packages/crd-seed/utils/index.js b/packages/crd-seed/utils/index.js index a57dc479..7fd00b90 100644 --- a/packages/crd-seed/utils/index.js +++ b/packages/crd-seed/utils/index.js @@ -9,4 +9,4 @@ const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.p // decide to if add prefix for path, eg: '/' or '/${repo}' const ifAddPrefix = ifProd && !ifPrerender -export { isMobile, ifAddPrefix, ifProd } +export { isMobile, ifPrerender, ifAddPrefix, ifProd } diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index 23075e0f..f06f6e84 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -6,9 +6,9 @@ const { getDocsConfig } = require('../utils') const getPrerenderRoutes = () => { const docsConfig = getDocsConfig() const menu = docsConfig && Array.isArray(docsConfig.menu) - ? docsConfig.menu.concat('README.md') + ? docsConfig.menu : [] - const result = [] + const result = ['/README', '/404'] dfs(menu, result, '', true) console.log('result', result) return result diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 17f5c56d..eb211321 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -179,6 +179,8 @@ module.exports = function (cmd) { // not use fs.move here or it'll throw error in github action await fs.copy(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) await fs.remove(`${paths.docsBuildDist}/${docsConfig.repo}`) + // move README as root index.html + await fs.copy(`${paths.docsBuildDist}/README/index.html`, `${paths.docsBuildDist}/index.html`) console.log('generate prerender file success!') } }, From cb382e707c228245b16d475694a9fc8a378a32e3 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 1 Mar 2021 13:15:15 +0800 Subject: [PATCH 208/352] docs: support prerender --- aaa/b.md | 1 - aaa/ccc/d.md | 0 config.yml | 1 - ...64\346\226\260\346\227\245\345\277\227.md" | 7 ++-- packages/crd-seed/component/NoMatch/index.js | 1 - packages/crd-seed/index.js | 2 - packages/crd-seed/layout/index.js | 1 - .../scripts/src/conf/getPrerenderRoutes.js | 1 - .../scripts/src/conf/webpack.config.prod.js | 37 +++++-------------- packages/scripts/src/web/Router.js | 3 -- sitemap.xml | 15 ++++++++ 11 files changed, 28 insertions(+), 41 deletions(-) delete mode 100644 aaa/b.md delete mode 100644 aaa/ccc/d.md create mode 100644 sitemap.xml diff --git a/aaa/b.md b/aaa/b.md deleted file mode 100644 index b6fc4c62..00000000 --- a/aaa/b.md +++ /dev/null @@ -1 +0,0 @@ -hello \ No newline at end of file diff --git a/aaa/ccc/d.md b/aaa/ccc/d.md deleted file mode 100644 index e69de29b..00000000 diff --git a/config.yml b/config.yml index 100185c0..0a08df65 100644 --- a/config.yml +++ b/config.yml @@ -14,7 +14,6 @@ menu: [ docs/自定义主题.md, docs/其它工具.md, docs/更新日志.md, - aaa ] ## set init open menu keys # menuOpenKeys: diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index a1079731..f956f5d6 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -4,11 +4,12 @@ ### 1.0.0 -Todo - - **Feature** - - 🚀 menu 字段从 string 调整为 array。 + - 🚀 文档支持预渲染。[pr](https://github.com/MuYunyun/create-react-doc/pull/95/files) + - 🚀 路由由 hash 路由调整为 browser 路由。 + 🎈 站点 SEO 优化。[doc](https://github.com/MuYunyun/blog/issues/84#issuecomment-786418891) + - 🚀 配置文件中 menu 字段类型从 string 调整为 array。 ### 0.3.30 diff --git a/packages/crd-seed/component/NoMatch/index.js b/packages/crd-seed/component/NoMatch/index.js index ada32511..46f29cf3 100644 --- a/packages/crd-seed/component/NoMatch/index.js +++ b/packages/crd-seed/component/NoMatch/index.js @@ -1,4 +1,3 @@ -// import { Link } from 'react-router-dom' import styles from './index.less' const Footer = () => { diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index f276926a..9979f7c1 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -8,12 +8,10 @@ const ThemeSeed = (props) => { return ( } /> { return diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 3c2ab57b..44144bec 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -77,7 +77,6 @@ function BasicLayout({ ) : ( -1} > {item && item.mdconf && item.mdconf.title diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index f06f6e84..e2729cbb 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -10,7 +10,6 @@ const getPrerenderRoutes = () => { : [] const result = ['/README', '/404'] dfs(menu, result, '', true) - console.log('result', result) return result } diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index eb211321..44b1f4ed 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -22,8 +22,6 @@ module.exports = function (cmd) { config.mode = 'production' config.entry = [paths.appIndexJs] // config.output.filename = 'js/[hash:8].js' - // config.output.filename = 'static/js/[name].bundle.js' - // config.output.chunkFilename = docsConfig.repo ? `${docsConfig.repo}/js/[name].[hash:8].js` : 'js/[name].[hash:8].js' config.output.chunkFilename = 'js/[name].[hash:8].js' config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}/` : '/' config.output.path = docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist @@ -140,7 +138,6 @@ module.exports = function (cmd) { removeComments: true, removeEmptyAttributes: true, }, - // filename: 'README/index.html', }), new CopyMarkdownImageWebpackPlugin({ dir: cmd.markdownPaths, @@ -163,8 +160,6 @@ module.exports = function (cmd) { // both options are optional filename: 'css/[contenthash].css', chunkFilename: 'css/[id].css', - // filename: docsConfig.repo ? `${docsConfig.repo}/css/[contenthash].css` : 'css/[contenthash].css', - // chunkFilename: docsConfig.repo ? `${docsConfig.repo}/css/[id].css` : 'css/[id].css', }), new PrerenderSPAPlugin({ // Required - The path to the webpack-outputted app to prerender. @@ -172,7 +167,6 @@ module.exports = function (cmd) { outputDir: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, indexPath: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}/index.html` : `${paths.docsBuildDist}/index.html`, // Required - Routes to render. - // routes: ['/', '/README', '/快速上手', '/404', '/aaa/b'], routes: getPrerenderRoutes(), successCb: async () => { if (docsConfig.repo) { @@ -181,39 +175,26 @@ module.exports = function (cmd) { await fs.remove(`${paths.docsBuildDist}/${docsConfig.repo}`) // move README as root index.html await fs.copy(`${paths.docsBuildDist}/README/index.html`, `${paths.docsBuildDist}/index.html`) + // todo: seo + if (fs.existsSync(`${paths.docsBase}/sitemap.xml`)) { + await fs.copy(`${paths.docsBase}/sitemap.xml`, `${paths.docsBuildDist}/sitemap.xml`) + } console.log('generate prerender file success!') } }, // The actual renderer to use. (Feel free to write your own) // Available renderers: https://github.com/Tribex/prerenderer/tree/master/renderers renderer: new Renderer({ - // // Optional - The name of the property to add to the window object with the contents of `inject`. + // Optional - The name of the property to add to the window object with the contents of `inject`. injectProperty: '__PRERENDER_INJECTED', - // // Optional - Any values you'd like your app to have access to via `window.injectProperty`. + // Optional - Any values you'd like your app to have access to via `window.injectProperty`. inject: { prerender: true, }, - - // // Optional - defaults to 0, no limit. - // // Routes are rendered asynchronously. - // // Use this to limit the number of routes rendered in parallel. + // Optional - defaults to 0, no limit. + // Routes are rendered asynchronously. + // Use this to limit the number of routes rendered in parallel. maxConcurrentRoutes: 4, - - // // Optional - Wait to render until the specified event is dispatched on the document. - // // eg, with `document.dispatchEvent(new Event('custom-render-trigger'))` - // renderAfterDocumentEvent: 'custom-render-trigger', - - // // Optional - Wait to render until the specified element is detected using `document.querySelector` - // renderAfterElementExists: 'my-app-element', - - // // Optional - Wait to render until a certain amount of time has passed. - // // NOT RECOMMENDED - // renderAfterTime: 5000, // Wait 5 seconds. - - // Other puppeteer options. - // (See here: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteerlaunchoptions) - // headless: false // Display the browser window when rendering. Useful for debugging. - // headless: false, }), }), ]) diff --git a/packages/scripts/src/web/Router.js b/packages/scripts/src/web/Router.js index 9f5281d4..bd285968 100644 --- a/packages/scripts/src/web/Router.js +++ b/packages/scripts/src/web/Router.js @@ -1,4 +1,3 @@ -// import { HashRouter, withRouter, Route, Switch } from 'react-router-dom' import { BrowserRouter, withRouter, Route, Switch } from 'react-router-dom' import theme from 'crd-theme' import lazyload from './lazyload' @@ -69,10 +68,8 @@ const RoutersContainer = withRouter(({ ...props }) => { export default function RouterRoot() { return ( - // - // ) } diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..f2e2c0cb --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,15 @@ + + + + http://muyunyun.cn/create-react-doc/README + 2020-08-21T16:12:20+03:00 + + + http://muyunyun.cn/create-react-doc/快速上手 + 2020-07-21T07:56:12+03:00 + + + http://muyunyun.cn/create-react-doc/%E9%BB%98%E8%AE%A4%E4%B8%BB%E9%A2%98 + 2020-10-21T07:56:12+03:00 + + \ No newline at end of file From 528bd6715e840be568ad63e7ce8cc522ae2e56e2 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 1 Mar 2021 13:39:29 +0800 Subject: [PATCH 209/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- packages/create-react-doc/package.json | 6 +++--- packages/scripts/package.json | 6 +++--- packages/theme/package.json | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lerna.json b/lerna.json index abedf515..423f6316 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.2.33", + "version": "0.2.34-alpha.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 08cc41c9..cdce7523 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "0.2.33", + "version": "0.2.34-alpha.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 916fc711..cc11ec8e 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "0.2.33", + "version": "0.2.34-alpha.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^0.2.33", + "crd-scripts": "^0.2.34-alpha.0", "crd-templates": "^0.2.31", - "crd-theme": "^0.2.33", + "crd-theme": "^0.2.34-alpha.0", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 99b99f90..dd4200cb 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "0.2.33", + "version": "0.2.34-alpha.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -15,7 +15,6 @@ "@babel/preset-env": "^7.3.4", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.3.4", - "crd-prerender-spa-plugin": "^0.1.0", "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2", "babel-eslint": "^8.0.1", "babel-loader": "^8.0.5", @@ -23,7 +22,8 @@ "colors-cli": "^1.0.13", "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", - "crd-theme": "^0.2.33", + "crd-prerender-spa-plugin": "^0.1.0", + "crd-theme": "^0.2.34-alpha.0", "crd-utils": "^0.2.22", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/theme/package.json b/packages/theme/package.json index ba6cea9e..2dd39638 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "0.2.33", + "version": "0.2.34-alpha.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 2be281919704f88e2ab7491bdb802a785566c14b Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 2 Mar 2021 13:31:59 +0800 Subject: [PATCH 210/352] feat: update 1.0.0 --- README.md | 10 +++++----- ...347\253\231\347\202\271\345\217\221\345\270\203.md" | 2 +- packages/templates/default/README.md | 2 +- packages/templates/default/_config.yml | 2 +- packages/templates/theme/default/_config.yml | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 45e4440d..da9d621d 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,10 @@ * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 * 性能: 通过预渲染、懒加载大幅提升站点加载速度。 * SEO: 支持 SEO, 让文档更易被搜索。 -* 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/#/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 +* 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 -> [快速上手](http://muyunyun.cn/create-react-doc/#/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) +> [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) ## 主题 @@ -50,7 +50,7 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) * [diana](https://muyunyun.cn/diana/) -如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/#/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)章节。 +如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)章节。 ## 快速上手 @@ -86,7 +86,7 @@ yarn create react-doc doc ## 站点发布 -在 [快速上手](http://muyunyun.cn/create-react-doc/#/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 +在 [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 ### 自动打包发布到 gh-pages (推荐) @@ -105,4 +105,4 @@ git remote add origin https://github.com/用户或组织名/项目名.git git push -u origin main ``` -> 更多内容可以访问 [站点发布](http://muyunyun.cn/create-react-doc/#/%E7%AB%99%E7%82%B9%E5%8F%91%E5%B8%83)、[高阶用法](http://muyunyun.cn/create-react-doc/#/%E9%AB%98%E9%98%B6%E7%94%A8%E6%B3%95)、[其它工具](http://muyunyun.cn/create-react-doc/#/%E5%85%B6%E5%AE%83%E5%B7%A5%E5%85%B7) 等章节。 +> 更多内容可以访问 [站点发布](http://muyunyun.cn/create-react-doc/%E7%AB%99%E7%82%B9%E5%8F%91%E5%B8%83)、[高阶用法](http://muyunyun.cn/create-react-doc/%E9%AB%98%E9%98%B6%E7%94%A8%E6%B3%95)、[其它工具](http://muyunyun.cn/create-react-doc/%E5%85%B6%E5%AE%83%E5%B7%A5%E5%85%B7) 等章节。 diff --git "a/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" "b/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" index a0cfc46d..bcdbe918 100644 --- "a/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" +++ "b/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" @@ -1,6 +1,6 @@ ## 站点发布 -在 [快速上手](http://muyunyun.cn/create-react-doc/#/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 +在 [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 ### 自动打包发布到 gh-pages (推荐) diff --git a/packages/templates/default/README.md b/packages/templates/default/README.md index de0c4c93..2b3244b3 100644 --- a/packages/templates/default/README.md +++ b/packages/templates/default/README.md @@ -29,7 +29,7 @@ Create React Doc 是一个使用 React 的 markdown 文档站点生成工具。 * 性能: 文档支持懒加载提升站点加载速度。 * 工作流: 集成 Github action, 自动化打包、发布站点。 -> [快速上手](http://muyunyun.cn/create-react-doc/#/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) +> [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) ## 主题 diff --git a/packages/templates/default/_config.yml b/packages/templates/default/_config.yml index a3e966d2..44d3b8a4 100644 --- a/packages/templates/default/_config.yml +++ b/packages/templates/default/_config.yml @@ -1,4 +1,4 @@ -# details see http://muyunyun.cn/create-react-doc/#/config.yml +# details see http://muyunyun.cn/create-react-doc/默认主题 # Site # title: diff --git a/packages/templates/theme/default/_config.yml b/packages/templates/theme/default/_config.yml index 798665c9..bc172229 100644 --- a/packages/templates/theme/default/_config.yml +++ b/packages/templates/theme/default/_config.yml @@ -1,4 +1,4 @@ -# details see http://muyunyun.cn/create-react-doc/#/config.yml +# details see http://muyunyun.cn/create-react-doc/默认主题 # Site # title: From 3d370959fd993f6611c38c95bcbe2bf72beb82c1 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 2 Mar 2021 13:33:48 +0800 Subject: [PATCH 211/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- packages/create-react-doc/package.json | 8 ++++---- packages/leetcode-cli/package.json | 4 ++-- packages/scripts/package.json | 6 +++--- packages/templates/package.json | 2 +- packages/theme/package.json | 2 +- packages/utils/package.json | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lerna.json b/lerna.json index 423f6316..28540d4a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.2.34-alpha.0", + "version": "1.0.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index cdce7523..0f0fcb5f 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "0.2.34-alpha.0", + "version": "1.0.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index cc11ec8e..cf778c91 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "0.2.34-alpha.0", + "version": "1.0.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^0.2.34-alpha.0", - "crd-templates": "^0.2.31", - "crd-theme": "^0.2.34-alpha.0", + "crd-scripts": "^1.0.0", + "crd-templates": "^1.0.0", + "crd-theme": "^1.0.0", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index 0a562e9b..d486c3a4 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "0.2.33", + "version": "1.0.0", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" @@ -8,7 +8,7 @@ "dependencies": { "axios": "^0.21.1", "commander": "^2.20.0", - "crd-utils": "^0.2.22", + "crd-utils": "^1.0.0", "enquirer": "^2.3.0", "graphql-request": "^1.8.2", "inquirer": "^7.3.3", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index dd4200cb..4e54ed4d 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "0.2.34-alpha.0", + "version": "1.0.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -23,8 +23,8 @@ "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", "crd-prerender-spa-plugin": "^0.1.0", - "crd-theme": "^0.2.34-alpha.0", - "crd-utils": "^0.2.22", + "crd-theme": "^1.0.0", + "crd-utils": "^1.0.0", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", "detect-port": "^1.2.2", diff --git a/packages/templates/package.json b/packages/templates/package.json index 8609d433..4890c43e 100644 --- a/packages/templates/package.json +++ b/packages/templates/package.json @@ -1,6 +1,6 @@ { "name": "crd-templates", - "version": "0.2.31", + "version": "1.0.0", "description": "Default Templates with Create React Doc", "repository": { "type": "git", diff --git a/packages/theme/package.json b/packages/theme/package.json index 2dd39638..8b8f11ea 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "0.2.34-alpha.0", + "version": "1.0.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/utils/package.json b/packages/utils/package.json index 0ddaea8f..299d29e1 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "crd-utils", - "version": "0.2.22", + "version": "1.0.0", "description": "Utils with create react doc", "main": "index.js", "repository": { From 11e3c492e2ced5ec7aac2fce288c149da275ac22 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 3 Mar 2021 18:59:10 +0800 Subject: [PATCH 212/352] feat: extract common path --- packages/crd-generator-sitemap/.npmrc | 10 ++++++++++ packages/crd-generator-sitemap/index.js | 6 ++++++ packages/crd-generator-sitemap/package.json | 18 +++++++++++++++++ packages/crd-generator-sitemap/path.js | 11 ++++++++++ packages/crd-generator-sitemap/sitemap.xml | 20 +++++++++++++++++++ packages/create-react-doc/index.js | 7 ++++--- packages/scripts/src/build.js | 4 ++-- packages/scripts/src/commands/initProject.js | 3 ++- packages/scripts/src/commands/initTheme.js | 3 ++- packages/scripts/src/conf/path.js | 14 +++---------- .../scripts/src/conf/webpack.config.dev.js | 5 +++-- packages/scripts/src/conf/webpack.config.js | 14 ++++++------- .../scripts/src/conf/webpack.config.prod.js | 18 +++++++++++------ packages/scripts/src/server.js | 4 ++-- packages/scripts/src/utils/index.js | 12 +++++------ packages/scripts/src/utils/initCache.js | 6 +++--- packages/utils/index.js | 10 ++++++++++ 17 files changed, 121 insertions(+), 44 deletions(-) create mode 100644 packages/crd-generator-sitemap/.npmrc create mode 100644 packages/crd-generator-sitemap/index.js create mode 100644 packages/crd-generator-sitemap/package.json create mode 100644 packages/crd-generator-sitemap/path.js create mode 100644 packages/crd-generator-sitemap/sitemap.xml diff --git a/packages/crd-generator-sitemap/.npmrc b/packages/crd-generator-sitemap/.npmrc new file mode 100644 index 00000000..7edb6af8 --- /dev/null +++ b/packages/crd-generator-sitemap/.npmrc @@ -0,0 +1,10 @@ +# .npmrc + +registry=https://registry.npmjs.org/ + +# https://github.com/sass/node-sass#binary-configuration-parameters +sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ + +# https://github.com/Medium/phantomjs#deciding-where-to-get-phantomjs +# phantomjs_cdnurl=http://cnpmjs.org/downloads +phantomjs_cdnurl=https://npm.taobao.org/dist/phantomjs diff --git a/packages/crd-generator-sitemap/index.js b/packages/crd-generator-sitemap/index.js new file mode 100644 index 00000000..6582e2cd --- /dev/null +++ b/packages/crd-generator-sitemap/index.js @@ -0,0 +1,6 @@ +const { resolveApp, resolveTool } = require('./path') + +module.exports = { + resolveApp, + resolveTool, +} diff --git a/packages/crd-generator-sitemap/package.json b/packages/crd-generator-sitemap/package.json new file mode 100644 index 00000000..f3eda1d2 --- /dev/null +++ b/packages/crd-generator-sitemap/package.json @@ -0,0 +1,18 @@ +{ + "name": "crd-generator-sitemap", + "version": "1.0.0", + "description": "generator sitemap for create-react-doc", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/MuYunyun/create-react-doc", + "directory": "packages/crd-generator-sitemap" + }, + "keywords": [], + "publishConfig": { + "access": "public" + }, + "author": "muyunyun", + "license": "MIT", + "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" +} diff --git a/packages/crd-generator-sitemap/path.js b/packages/crd-generator-sitemap/path.js new file mode 100644 index 00000000..0e54be2e --- /dev/null +++ b/packages/crd-generator-sitemap/path.js @@ -0,0 +1,11 @@ +const path = require('path') +const fs = require('fs') + +// handle the problem of symbol in any platform +const appDirectory = fs.realpathSync(process.cwd()) +// Markdown dir +const resolveApp = relativePath => path.resolve(appDirectory, relativePath) + +module.exports = { + resolveApp, +} diff --git a/packages/crd-generator-sitemap/sitemap.xml b/packages/crd-generator-sitemap/sitemap.xml new file mode 100644 index 00000000..9860daff --- /dev/null +++ b/packages/crd-generator-sitemap/sitemap.xml @@ -0,0 +1,20 @@ + + + {% for post in posts %} + + {{ post.permalink | uriencode }} + {% if post.updated %} + {{ post.updated | formatDate }} + {% elif post.date %} + {{ post.date | formatDate }} + {% endif %} + + {% endfor %} + + + {{ config.url | uriencode }} + {{ sNow | formatDate }} + daily + 1.0 + + diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index 05fabade..ae399592 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -12,6 +12,7 @@ const { Servers, Build, } = require('crd-scripts') +const { docsReadme, cacheDirPath } = require('crd-utils') const input = require('@inquirer/input') const pkg = require('./package.json') @@ -64,8 +65,8 @@ const docsConfig = getDocsConfig() // assign all the markdown dir if (start || build) { - fs.existsSync(paths.docsReadme) && - program.markdownPaths.push(paths.docsReadme) + fs.existsSync(docsReadme) && + program.markdownPaths.push(docsReadme) docsConfig && docsConfig.menu @@ -97,7 +98,7 @@ program.markdownPaths.forEach((item) => { }) if (isExists) { - fs.ensureDirSync(paths.cacheDirPath) + fs.ensureDirSync(cacheDirPath) initCache(program, () => { if (build) { Build(program) diff --git a/packages/scripts/src/build.js b/packages/scripts/src/build.js index 019a4bd6..0d1ba2fe 100644 --- a/packages/scripts/src/build.js +++ b/packages/scripts/src/build.js @@ -1,11 +1,11 @@ const webpack = require('webpack') const fs = require('fs') +const { docsConfig } = require('crd-utils') const conf = require('./conf/webpack.config.prod') -const paths = require('./conf/path') require('colors-cli/toxic') module.exports = function serve(program) { - if (!fs.existsSync(paths.docsConfig)) { + if (!fs.existsSync(docsConfig)) { console.log('please check config.yml in root dir!\n') return } diff --git a/packages/scripts/src/commands/initProject.js b/packages/scripts/src/commands/initProject.js index 0e7c1be0..1668d457 100644 --- a/packages/scripts/src/commands/initProject.js +++ b/packages/scripts/src/commands/initProject.js @@ -1,6 +1,7 @@ const path = require('path') const { execSync } = require('child_process') const fs = require('fs-extra') +const { templatePath } = require('crd-utils') const copyTemplate = require('copy-template-dir') const paths = require('../conf/path') @@ -21,7 +22,7 @@ module.exports = function (params) { fs.ensureDirSync(outDir) } - const defaultTemplatePath = `${paths.templatePath}/default` + const defaultTemplatePath = `${templatePath}/default` // copy template, see https://github.com/MuYunyun/create-react-doc/issues/50 if (!fs.pathExistsSync(defaultTemplatePath)) { diff --git a/packages/scripts/src/commands/initTheme.js b/packages/scripts/src/commands/initTheme.js index 41b12390..2ac2570a 100644 --- a/packages/scripts/src/commands/initTheme.js +++ b/packages/scripts/src/commands/initTheme.js @@ -4,6 +4,7 @@ const path = require('path') const { execSync } = require('child_process') const fs = require('fs-extra') +const { templatePath } = require('crd-utils') const copyTemplate = require('copy-template-dir') const paths = require('../conf/path') @@ -22,7 +23,7 @@ module.exports = function (themeName) { fs.ensureDirSync(outDir) } - const defaultTemplatePath = `${paths.templatePath}/theme/default` + const defaultTemplatePath = `${templatePath}/theme/default` if (!fs.pathExistsSync(defaultTemplatePath)) { execSync('mkdir temp && cd temp && yarn add crd-templates -D') diff --git a/packages/scripts/src/conf/path.js b/packages/scripts/src/conf/path.js index 424e5296..58a6690d 100644 --- a/packages/scripts/src/conf/path.js +++ b/packages/scripts/src/conf/path.js @@ -130,17 +130,9 @@ const resolveTool = relativePath => path.resolve(toolDirectory, relativePath) module.exports = { // markdown dir crdConf: getCrdConf(), - docsGitIgnore: resolveApp('.gitignore'), - docsBase: resolveApp(''), - docsConfig: docsConfigPath, - docsReadme: resolveApp('README.md'), - docsBuildDist: resolveApp('.crd-dist'), - cacheDirPath: resolveApp('.cache'), - searchFilePath: resolveApp('.cache/search.js'), - watchFilePath: resolveApp('.cache/watch-dir.js'), - templatePath: resolveApp('node_modules/crd-templates'), - defaultHTMLPath: resolveApp('node_modules/crd-theme/index.html'), - defaultTemplateThemePath: resolveApp('node_modules/crd-templates/theme/default'), + // todo delete + // docsConfig: resolveApp('config.yml'), + // docsBuildDist: resolveApp('.crd-dist'), defaultTheme: devTheme ? resolveApp(`${devTheme}`) : resolveApp(`node_modules/${theme}`), diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index 2d9ea5fe..86828642 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -3,6 +3,7 @@ const webpack = require('webpack') const path = require('path') const upath = require('upath') const HtmlWebpackPlugin = require('html-webpack-plugin') +const { defaultHTMLPath, cacheDirPath } = require('crd-utils') const FriendlyErrorsWebpackPlugin = require('@nuxtjs/friendly-errors-webpack-plugin') const { getDocsConfig } = require('../utils') const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') @@ -117,12 +118,12 @@ module.exports = function (cmd) { new HtmlWebpackPlugin({ inject: true, favicon: paths.defaultFaviconPath, - template: paths.defaultHTMLPath, + template: defaultHTMLPath, title: docsConfig && docsConfig.title ? docsConfig.title : 'Create React Doc', }), new CreateSpareWebpackPlugin({ // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 - path: path.join(paths.cacheDirPath, './md'), + path: path.join(cacheDirPath, './md'), sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 directoryTrees: { // 索引目录 dir: cmd.markdownPaths, diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index d5603b4c..6ea9bbff 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -4,7 +4,7 @@ const path = require('path') const webpack = require('webpack') const webpackbar = require('webpackbar') const fs = require('fs') -const { resolveApp } = require('crd-utils') +const { resolveApp, docsConfig, cacheDirPath } = require('crd-utils') const { getDocsConfig } = require('../utils') // const { getDocsConfig, getSearchContent } = require('../utils'); const paths = require('./path') @@ -19,15 +19,15 @@ if (paths.crdConf && paths.crdConf.footer && typeof paths.crdConf.footer === 'st define.FOOTER = JSON.stringify(paths.crdConf.footer) } /* custom define docs config */ -if (paths.docsConfig) { +if (docsConfig) { // const searchContent = getSearchContent(); - const docsConfig = getDocsConfig() - define.DOCSCONFIG = JSON.stringify(docsConfig) + const docsConfigObj = getDocsConfig() + define.DOCSCONFIG = JSON.stringify(docsConfigObj) // todo: searchContent affects the performance, so take annotation here templately. // define.SEARCHCONTENT = searchContent && searchContent.toString(); - // if there is inject logic in docsConfig - if (docsConfig && docsConfig.inject && fs.existsSync(resolveApp(docsConfig.inject))) { + // if there is inject logic in docsConfigObj + if (docsConfigObj && docsConfigObj.inject && fs.existsSync(resolveApp(docsConfigObj.inject))) { define.INJECT = require(resolveApp(docsConfig.inject)) } } @@ -67,7 +67,7 @@ module.exports = { // https://github.com/react-doc/raw-content-replace-loader/blob/master/index.js loader: require.resolve('raw-content-replace-loader'), options: { - path: path.join(paths.cacheDirPath, './md'), // dir need to replace + path: path.join(cacheDirPath, './md'), // dir need to replace replace: paths.projectPath, // the dir to replace sep: /___/g, // name saved, folder + __ + file }, diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 44b1f4ed..86c6b29c 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -9,6 +9,7 @@ const PrerenderSPAPlugin = require('crd-prerender-spa-plugin') // const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const fs = require('fs-extra') +const { docsBase, defaultHTMLPath, cacheDirPath } = require('crd-utils') const { getDocsConfig } = require('../utils') const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') @@ -120,6 +121,8 @@ module.exports = function (cmd) { // ], } + const routes = getPrerenderRoutes() + config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('prod'), @@ -127,7 +130,7 @@ module.exports = function (cmd) { new HtmlWebpackPlugin({ inject: true, favicon: paths.defaultFaviconPath, - template: paths.defaultHTMLPath, + template: defaultHTMLPath, title: docsConfig && docsConfig.title ? docsConfig.title : 'Create React Doc', minify: { @@ -145,7 +148,7 @@ module.exports = function (cmd) { }), new CreateSpareWebpackPlugin({ // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 - path: path.join(paths.cacheDirPath, './md'), + path: path.join(cacheDirPath, './md'), sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 directoryTrees: { // 索引目录 @@ -167,7 +170,7 @@ module.exports = function (cmd) { outputDir: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, indexPath: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}/index.html` : `${paths.docsBuildDist}/index.html`, // Required - Routes to render. - routes: getPrerenderRoutes(), + routes, successCb: async () => { if (docsConfig.repo) { // not use fs.move here or it'll throw error in github action @@ -175,11 +178,14 @@ module.exports = function (cmd) { await fs.remove(`${paths.docsBuildDist}/${docsConfig.repo}`) // move README as root index.html await fs.copy(`${paths.docsBuildDist}/README/index.html`, `${paths.docsBuildDist}/index.html`) + console.log('generate prerender file success!') // todo: seo - if (fs.existsSync(`${paths.docsBase}/sitemap.xml`)) { - await fs.copy(`${paths.docsBase}/sitemap.xml`, `${paths.docsBuildDist}/sitemap.xml`) + if (true) { + if (fs.existsSync(`${docsBase}/sitemap.xml`)) { + await fs.copy(`${docsBase}/sitemap.xml`, `${paths.docsBuildDist}/sitemap.xml`) + } } - console.log('generate prerender file success!') + console.log('generate sitemap file success!') } }, // The actual renderer to use. (Feel free to write your own) diff --git a/packages/scripts/src/server.js b/packages/scripts/src/server.js index ded347fe..a30fe164 100644 --- a/packages/scripts/src/server.js +++ b/packages/scripts/src/server.js @@ -3,10 +3,10 @@ const WebpackDevServer = require('webpack-dev-server') const openBrowsers = require('open-browsers') const detect = require('detect-port') const fs = require('fs') +const { docsConfig } = require('crd-utils') const prepareUrls = require('local-ip-url/prepareUrls') const conf = require('./conf/webpack.config.dev') const createDevServerConfig = require('./conf/webpack.config.server') -const paths = require('./conf/path') require('colors-cli/toxic') function clearConsole() { @@ -14,7 +14,7 @@ function clearConsole() { } module.exports = function server(cmd) { - if (!fs.existsSync(paths.docsConfig)) { + if (!fs.existsSync(docsConfig)) { console.log('please check config.yml in root dir!\n') return } diff --git a/packages/scripts/src/utils/index.js b/packages/scripts/src/utils/index.js index be761ff4..e16e1a81 100644 --- a/packages/scripts/src/utils/index.js +++ b/packages/scripts/src/utils/index.js @@ -1,6 +1,6 @@ const fs = require('fs') const yaml = require('js-yaml') -const { resolveApp } = require('crd-utils') +const { docsGitIgnore, docsConfig, searchFilePath } = require('crd-utils') const paths = require('../conf/path') /** @@ -8,8 +8,8 @@ const paths = require('../conf/path') */ exports.ifInGitIgnore = (mdfilePathInProject) => { let gitIgnoreContentArr = [] - if (fs.existsSync(paths.docsGitIgnore)) { - const gitIgnoreContent = fs.readFileSync(paths.docsGitIgnore) + if (fs.existsSync(docsGitIgnore)) { + const gitIgnoreContent = fs.readFileSync(docsGitIgnore) gitIgnoreContentArr = gitIgnoreContent.toString().split('\n') } return gitIgnoreContentArr.indexOf(mdfilePathInProject) > -1 @@ -49,7 +49,7 @@ exports.timeFormat = (date) => { */ exports.getDocsConfig = () => { /* avoid reference loop, so use resolveApp('config.yml') instead of refrence from paths. */ - const docsConfig = resolveApp('config.yml') + // const docsConfig = resolveApp('config.yml') if (!fs.existsSync(docsConfig)) { return null } @@ -57,10 +57,10 @@ exports.getDocsConfig = () => { } exports.getSearchContent = () => { - if (!fs.existsSync(paths.searchFilePath)) { + if (!fs.existsSync(searchFilePath)) { console.log('there is no find .cache/search.js in root dir!\n') return null } - return fs.readFileSync(paths.searchFilePath) + return fs.readFileSync(searchFilePath) } diff --git a/packages/scripts/src/utils/initCache.js b/packages/scripts/src/utils/initCache.js index df6293e6..35bd71aa 100644 --- a/packages/scripts/src/utils/initCache.js +++ b/packages/scripts/src/utils/initCache.js @@ -1,8 +1,8 @@ const write = require('write') const path = require('path') const fs = require('fs') +const { cacheDirPath } = require('crd-utils') const DirectoryTree = require('../conf/node-directory-tree') -const paths = require('../conf/path') const { ifInGitIgnore, getDocsConfig } = require('./index') function restRuctureMarkdown(items, arr = []) { @@ -41,7 +41,7 @@ module.exports = function (program, cb) { const underlineFileName = mdfilePath.split(path.sep).join('___') const writeMarkdownPath = path.resolve( process.cwd(), - paths.cacheDirPath, + cacheDirPath, 'md', underlineFileName, ) @@ -91,7 +91,7 @@ module.exports = function (program, cb) { dfsMap(treeData) const writeSearchPath = path.resolve( process.cwd(), - paths.cacheDirPath, + cacheDirPath, 'search.js', ) write.sync( diff --git a/packages/utils/index.js b/packages/utils/index.js index 6582e2cd..e4d1d897 100644 --- a/packages/utils/index.js +++ b/packages/utils/index.js @@ -3,4 +3,14 @@ const { resolveApp, resolveTool } = require('./path') module.exports = { resolveApp, resolveTool, + // common paths + docsGitIgnore: resolveApp('.gitignore'), + docsBase: resolveApp(''), + docsConfig: resolveApp('config.yml'), + docsReadme: resolveApp('README.md'), + docsBuildDist: resolveApp('.crd-dist'), + cacheDirPath: resolveApp('.cache'), + searchFilePath: resolveApp('.cache/search.js'), + templatePath: resolveApp('node_modules/crd-templates'), + defaultHTMLPath: resolveApp('node_modules/crd-theme/index.html'), } From c47f202859720fdf10e93d72e72381d08386de06 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 4 Mar 2021 13:44:50 +0800 Subject: [PATCH 213/352] feat: seo --- config.yml | 4 ++ ...64\346\226\260\346\227\245\345\277\227.md" | 6 +++ packages/crd-generator-sitemap/generate.js | 38 +++++++++++++++++++ packages/crd-generator-sitemap/index.js | 5 +-- packages/crd-generator-sitemap/path.js | 11 ------ packages/crd-generator-sitemap/sitemap.xml | 20 ---------- packages/create-react-doc/index.js | 7 ++-- .../scripts/src/conf/getPrerenderRoutes.js | 4 +- packages/scripts/src/conf/path.js | 21 ++++------ packages/scripts/src/conf/webpack.config.js | 6 +-- .../scripts/src/conf/webpack.config.prod.js | 23 +++++------ packages/scripts/src/utils/index.js | 1 - 12 files changed, 78 insertions(+), 68 deletions(-) create mode 100644 packages/crd-generator-sitemap/generate.js delete mode 100644 packages/crd-generator-sitemap/path.js delete mode 100644 packages/crd-generator-sitemap/sitemap.xml diff --git a/config.yml b/config.yml index 0a08df65..9afda98d 100644 --- a/config.yml +++ b/config.yml @@ -27,6 +27,10 @@ devTheme: packages/crd-seed/index user: MuYunyun repo: create-react-doc github-ribbons: true +domain: https://muyunyun.cn +seo: + google: true + # Available values: en | zh-cn language: en diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index f956f5d6..b5135b84 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,6 +2,12 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.1.0 + +- **Feature** + + - 🚀 新增 crd-generator-sitemap 包。 + - 🚀 配置文件中新增 domain 字段用于生成 sitemap。 ### 1.0.0 - **Feature** diff --git a/packages/crd-generator-sitemap/generate.js b/packages/crd-generator-sitemap/generate.js new file mode 100644 index 00000000..497e2533 --- /dev/null +++ b/packages/crd-generator-sitemap/generate.js @@ -0,0 +1,38 @@ +const { getDocsConfig } = require('crd-scripts') + +// template for google SEO +// +// muyunyun.cn/blog/xxx +// {{ sNow | formatDate }} +// daily +// 1.0 +// + +const docsConfig = getDocsConfig() + +const domain = docsConfig.domain +const repo = docsConfig.repo + +const template = content => + ` + + ${content} + +` + +/** + * generate sitemap for google. + */ +const generateSiteMap = (routes) => { + let content = '' + for (let i = 0; i < routes.length; i++) { + content += ` + ${domain}/${repo}${routes[i]} +` + } + return template(content) +} + +module.exports = { + generateSiteMap, +} diff --git a/packages/crd-generator-sitemap/index.js b/packages/crd-generator-sitemap/index.js index 6582e2cd..3533d7d1 100644 --- a/packages/crd-generator-sitemap/index.js +++ b/packages/crd-generator-sitemap/index.js @@ -1,6 +1,5 @@ -const { resolveApp, resolveTool } = require('./path') +const { generateSiteMap } = require('./generate') module.exports = { - resolveApp, - resolveTool, + generateSiteMap, } diff --git a/packages/crd-generator-sitemap/path.js b/packages/crd-generator-sitemap/path.js deleted file mode 100644 index 0e54be2e..00000000 --- a/packages/crd-generator-sitemap/path.js +++ /dev/null @@ -1,11 +0,0 @@ -const path = require('path') -const fs = require('fs') - -// handle the problem of symbol in any platform -const appDirectory = fs.realpathSync(process.cwd()) -// Markdown dir -const resolveApp = relativePath => path.resolve(appDirectory, relativePath) - -module.exports = { - resolveApp, -} diff --git a/packages/crd-generator-sitemap/sitemap.xml b/packages/crd-generator-sitemap/sitemap.xml deleted file mode 100644 index 9860daff..00000000 --- a/packages/crd-generator-sitemap/sitemap.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - {% for post in posts %} - - {{ post.permalink | uriencode }} - {% if post.updated %} - {{ post.updated | formatDate }} - {% elif post.date %} - {{ post.date | formatDate }} - {% endif %} - - {% endfor %} - - - {{ config.url | uriencode }} - {{ sNow | formatDate }} - daily - 1.0 - - diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index ae399592..a8f1bf64 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -7,12 +7,11 @@ const { initTheme, initCache, Deploy, - paths, getDocsConfig, Servers, Build, } = require('crd-scripts') -const { docsReadme, cacheDirPath } = require('crd-utils') +const { docsReadme, cacheDirPath, docsBuildDist } = require('crd-utils') const input = require('@inquirer/input') const pkg = require('./package.json') @@ -75,9 +74,9 @@ if (start || build) { ) } -if (build && fs.pathExistsSync(paths.docsBuildDist)) { +if (build && fs.pathExistsSync(docsBuildDist)) { // clean dir - fs.emptyDirSync(paths.docsBuildDist) + fs.emptyDirSync(docsBuildDist) } // deploy code to special git repo and branch. diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index e2729cbb..97a696e1 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -1,8 +1,8 @@ const fs = require('fs') const { getDocsConfig } = require('../utils') -// eg: [docs/quick_start.md, a] -// output: [/quick_start, /a/b, /a/b/c] +// eg: ['docs/quick_start.md', 'a'] +// output: ['/quick_start', '/a/b', '/a/b/c'] const getPrerenderRoutes = () => { const docsConfig = getDocsConfig() const menu = docsConfig && Array.isArray(docsConfig.menu) diff --git a/packages/scripts/src/conf/path.js b/packages/scripts/src/conf/path.js index 58a6690d..8653fa98 100644 --- a/packages/scripts/src/conf/path.js +++ b/packages/scripts/src/conf/path.js @@ -1,7 +1,7 @@ const path = require('path') const fs = require('fs') const { execSync } = require('child_process') -const { resolveApp } = require('crd-utils') +const { resolveApp, docsConfig } = require('crd-utils') const chalk = require('chalk') const { getDocsConfig } = require('../utils') @@ -71,17 +71,15 @@ let theme = '' // theme in develop mode. let devTheme = false -const docsConfigPath = resolveApp('config.yml') - const getTheme = () => { - if (docsConfigPath) { - const docsConfig = getDocsConfig() - if (!docsConfig) return - if (docsConfig.devTheme) { - devTheme = docsConfig.devTheme - theme = docsConfig.devTheme + if (docsConfig) { + const docsConfigObj = getDocsConfig() + if (!docsConfigObj) return + if (docsConfigObj.devTheme) { + devTheme = docsConfigObj.devTheme + theme = docsConfigObj.devTheme } else { - theme = docsConfig.theme + theme = docsConfigObj.theme // install custom theme if (!fs.existsSync(resolveApp(`node_modules/${theme}`))) { @@ -130,9 +128,6 @@ const resolveTool = relativePath => path.resolve(toolDirectory, relativePath) module.exports = { // markdown dir crdConf: getCrdConf(), - // todo delete - // docsConfig: resolveApp('config.yml'), - // docsBuildDist: resolveApp('.crd-dist'), defaultTheme: devTheme ? resolveApp(`${devTheme}`) : resolveApp(`node_modules/${theme}`), diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 6ea9bbff..99d8e145 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -4,7 +4,7 @@ const path = require('path') const webpack = require('webpack') const webpackbar = require('webpackbar') const fs = require('fs') -const { resolveApp, docsConfig, cacheDirPath } = require('crd-utils') +const { resolveApp, docsConfig, cacheDirPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('../utils') // const { getDocsConfig, getSearchContent } = require('../utils'); const paths = require('./path') @@ -28,14 +28,14 @@ if (docsConfig) { // if there is inject logic in docsConfigObj if (docsConfigObj && docsConfigObj.inject && fs.existsSync(resolveApp(docsConfigObj.inject))) { - define.INJECT = require(resolveApp(docsConfig.inject)) + define.INJECT = require(resolveApp(docsConfigObj.inject)) } } module.exports = { entry: {}, output: { - path: paths.docsBuildDist, + path: docsBuildDist, publicPath: paths.publicPath, filename: 'js/[name].[hash:8].js', chunkFilename: 'js/[name].[hash:8].js', diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 86c6b29c..98d6df39 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -6,10 +6,11 @@ const HtmlWebpackPlugin = require('html-webpack-plugin') const CopyMarkdownImageWebpackPlugin = require('copy-markdown-image-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const PrerenderSPAPlugin = require('crd-prerender-spa-plugin') +const { generateSiteMap } = require('crd-generator-sitemap') // const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const fs = require('fs-extra') -const { docsBase, defaultHTMLPath, cacheDirPath } = require('crd-utils') +const { docsBase, defaultHTMLPath, cacheDirPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('../utils') const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') @@ -25,7 +26,7 @@ module.exports = function (cmd) { // config.output.filename = 'js/[hash:8].js' config.output.chunkFilename = 'js/[name].[hash:8].js' config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}/` : '/' - config.output.path = docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist + config.output.path = docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { @@ -166,23 +167,23 @@ module.exports = function (cmd) { }), new PrerenderSPAPlugin({ // Required - The path to the webpack-outputted app to prerender. - staticDir: paths.docsBuildDist, - outputDir: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}` : paths.docsBuildDist, - indexPath: docsConfig.repo ? `${paths.docsBuildDist}/${docsConfig.repo}/index.html` : `${paths.docsBuildDist}/index.html`, + staticDir: docsBuildDist, + outputDir: docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist, + indexPath: docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}/index.html` : `${docsBuildDist}/index.html`, // Required - Routes to render. routes, successCb: async () => { if (docsConfig.repo) { // not use fs.move here or it'll throw error in github action - await fs.copy(`${paths.docsBuildDist}/${docsConfig.repo}`, paths.docsBuildDist) - await fs.remove(`${paths.docsBuildDist}/${docsConfig.repo}`) + await fs.copy(`${docsBuildDist}/${docsConfig.repo}`, docsBuildDist) + await fs.remove(`${docsBuildDist}/${docsConfig.repo}`) // move README as root index.html - await fs.copy(`${paths.docsBuildDist}/README/index.html`, `${paths.docsBuildDist}/index.html`) + await fs.copy(`${docsBuildDist}/README/index.html`, `${docsBuildDist}/index.html`) console.log('generate prerender file success!') // todo: seo - if (true) { - if (fs.existsSync(`${docsBase}/sitemap.xml`)) { - await fs.copy(`${docsBase}/sitemap.xml`, `${paths.docsBuildDist}/sitemap.xml`) + if (docsConfig.seo) { + if (docsConfig.seo.google) { + fs.writeFileSync(`${docsBuildDist}/sitemap.xml`, generateSiteMap()) } } console.log('generate sitemap file success!') diff --git a/packages/scripts/src/utils/index.js b/packages/scripts/src/utils/index.js index e16e1a81..8d43eda0 100644 --- a/packages/scripts/src/utils/index.js +++ b/packages/scripts/src/utils/index.js @@ -1,7 +1,6 @@ const fs = require('fs') const yaml = require('js-yaml') const { docsGitIgnore, docsConfig, searchFilePath } = require('crd-utils') -const paths = require('../conf/path') /** * judege cur file if in git ignore. From cd9e07e6eaaee36c96989eee41600d68d20e2347 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 4 Mar 2021 18:52:53 +0800 Subject: [PATCH 214/352] feat: support seo --- packages/crd-generator-sitemap/generate.js | 16 ++++++++++++---- packages/crd-seed/component/Menu/SubMenu.js | 2 -- packages/create-react-doc/index.js | 3 +-- packages/scripts/index.js | 2 -- packages/scripts/package.json | 1 - .../scripts/src/conf/getPrerenderRoutes.js | 2 +- packages/scripts/src/conf/path.js | 3 +-- .../scripts/src/conf/webpack.config.dev.js | 2 +- packages/scripts/src/conf/webpack.config.js | 4 ++-- .../scripts/src/conf/webpack.config.prod.js | 7 +++---- packages/scripts/src/utils/index.js | 15 +-------------- packages/scripts/src/utils/initCache.js | 4 ++-- packages/utils/index.js | 19 ++++++++++++++++++- packages/utils/package.json | 3 +++ sitemap.xml | 15 --------------- 15 files changed, 45 insertions(+), 53 deletions(-) delete mode 100644 sitemap.xml diff --git a/packages/crd-generator-sitemap/generate.js b/packages/crd-generator-sitemap/generate.js index 497e2533..cc335ee3 100644 --- a/packages/crd-generator-sitemap/generate.js +++ b/packages/crd-generator-sitemap/generate.js @@ -1,4 +1,4 @@ -const { getDocsConfig } = require('crd-scripts') +const { getDocsConfig } = require('crd-utils') // template for google SEO // @@ -26,9 +26,17 @@ const template = content => const generateSiteMap = (routes) => { let content = '' for (let i = 0; i < routes.length; i++) { - content += ` - ${domain}/${repo}${routes[i]} -` + if (i === routes.length - 1) { + content += +` + ${domain}/${repo}${routes[i]} + ` + } else { + content += +` + ${domain}/${repo}${routes[i]} + \n` + } } return template(content) } diff --git a/packages/crd-seed/component/Menu/SubMenu.js b/packages/crd-seed/component/Menu/SubMenu.js index 10e47038..8c93a7bb 100644 --- a/packages/crd-seed/component/Menu/SubMenu.js +++ b/packages/crd-seed/component/Menu/SubMenu.js @@ -88,8 +88,6 @@ function SubMenu({ const handleParentMouseEnter = () => { setParentMenuHover(true) - // console.log(`parentEnter${level} ChildMenuHover${level}`, getChildMenuHover()) - onHoverKey(keyValue) } diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index a8f1bf64..e8da6f21 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -7,11 +7,10 @@ const { initTheme, initCache, Deploy, - getDocsConfig, Servers, Build, } = require('crd-scripts') -const { docsReadme, cacheDirPath, docsBuildDist } = require('crd-utils') +const { docsReadme, cacheDirPath, docsBuildDist, getDocsConfig } = require('crd-utils') const input = require('@inquirer/input') const pkg = require('./package.json') diff --git a/packages/scripts/index.js b/packages/scripts/index.js index 322bbabd..c819cc57 100644 --- a/packages/scripts/index.js +++ b/packages/scripts/index.js @@ -5,7 +5,6 @@ const Servers = require('./src/server') const Build = require('./src/build') const Deploy = require('./src/deploy') const paths = require('./src/conf/path') -const { getDocsConfig } = require('./src/utils') module.exports = { initProject, @@ -15,5 +14,4 @@ module.exports = { Build, Deploy, paths, - getDocsConfig, } diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 4e54ed4d..a24d436a 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -35,7 +35,6 @@ "gh-pages": "^1.2.0", "highlight.js": "^10.5.0", "html-webpack-plugin": "^4.5.1", - "js-yaml": "^3.14.0", "less-loader": "^7.2.1", "loader-utils": "^2.0.0", "loading-cli": "^1.0.6", diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index 97a696e1..26770279 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -1,5 +1,5 @@ const fs = require('fs') -const { getDocsConfig } = require('../utils') +const { getDocsConfig } = require('crd-utils') // eg: ['docs/quick_start.md', 'a'] // output: ['/quick_start', '/a/b', '/a/b/c'] diff --git a/packages/scripts/src/conf/path.js b/packages/scripts/src/conf/path.js index 8653fa98..2b6b9624 100644 --- a/packages/scripts/src/conf/path.js +++ b/packages/scripts/src/conf/path.js @@ -1,9 +1,8 @@ const path = require('path') const fs = require('fs') const { execSync } = require('child_process') -const { resolveApp, docsConfig } = require('crd-utils') +const { resolveApp, docsConfig, getDocsConfig } = require('crd-utils') const chalk = require('chalk') -const { getDocsConfig } = require('../utils') // handle the problem of symbol in any platform const appDirectory = fs.realpathSync(process.cwd()) diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index 86828642..c72d4e8f 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -5,7 +5,7 @@ const upath = require('upath') const HtmlWebpackPlugin = require('html-webpack-plugin') const { defaultHTMLPath, cacheDirPath } = require('crd-utils') const FriendlyErrorsWebpackPlugin = require('@nuxtjs/friendly-errors-webpack-plugin') -const { getDocsConfig } = require('../utils') +const { getDocsConfig } = require('crd-utils') const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') const paths = require('./path') diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 99d8e145..1f0a6108 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -5,8 +5,8 @@ const webpack = require('webpack') const webpackbar = require('webpackbar') const fs = require('fs') const { resolveApp, docsConfig, cacheDirPath, docsBuildDist } = require('crd-utils') -const { getDocsConfig } = require('../utils') -// const { getDocsConfig, getSearchContent } = require('../utils'); +const { getDocsConfig } = require('crd-utils') +// const { getSearchContent } = require('../utils'); const paths = require('./path') const pkg = require('../../package.json') diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 98d6df39..e16a888a 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -10,8 +10,8 @@ const { generateSiteMap } = require('crd-generator-sitemap') // const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const fs = require('fs-extra') -const { docsBase, defaultHTMLPath, cacheDirPath, docsBuildDist } = require('crd-utils') -const { getDocsConfig } = require('../utils') +const { defaultHTMLPath, cacheDirPath, docsBuildDist } = require('crd-utils') +const { getDocsConfig } = require('crd-utils') const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') const paths = require('./path') @@ -180,10 +180,9 @@ module.exports = function (cmd) { // move README as root index.html await fs.copy(`${docsBuildDist}/README/index.html`, `${docsBuildDist}/index.html`) console.log('generate prerender file success!') - // todo: seo if (docsConfig.seo) { if (docsConfig.seo.google) { - fs.writeFileSync(`${docsBuildDist}/sitemap.xml`, generateSiteMap()) + fs.writeFileSync(`${docsBuildDist}/sitemap.xml`, generateSiteMap(routes)) } } console.log('generate sitemap file success!') diff --git a/packages/scripts/src/utils/index.js b/packages/scripts/src/utils/index.js index 8d43eda0..5b9af2be 100644 --- a/packages/scripts/src/utils/index.js +++ b/packages/scripts/src/utils/index.js @@ -1,6 +1,5 @@ const fs = require('fs') -const yaml = require('js-yaml') -const { docsGitIgnore, docsConfig, searchFilePath } = require('crd-utils') +const { docsGitIgnore, searchFilePath } = require('crd-utils') /** * judege cur file if in git ignore. @@ -43,18 +42,6 @@ exports.timeFormat = (date) => { )}-${paddingTwoDigits(date.getDate())}` } -/** - * get docs config, see https://github.com/nodeca/js-yaml/blob/2d1fbed8f3a76ff93cccb9a8a418b4c4a482d3d9/lib/js-yaml/loader.js#L1590-L1592 - */ -exports.getDocsConfig = () => { - /* avoid reference loop, so use resolveApp('config.yml') instead of refrence from paths. */ - // const docsConfig = resolveApp('config.yml') - if (!fs.existsSync(docsConfig)) { - return null - } - return yaml.safeLoad(fs.readFileSync(docsConfig)) -} - exports.getSearchContent = () => { if (!fs.existsSync(searchFilePath)) { console.log('there is no find .cache/search.js in root dir!\n') diff --git a/packages/scripts/src/utils/initCache.js b/packages/scripts/src/utils/initCache.js index 35bd71aa..ce265b07 100644 --- a/packages/scripts/src/utils/initCache.js +++ b/packages/scripts/src/utils/initCache.js @@ -1,9 +1,9 @@ const write = require('write') const path = require('path') const fs = require('fs') -const { cacheDirPath } = require('crd-utils') +const { cacheDirPath, getDocsConfig } = require('crd-utils') const DirectoryTree = require('../conf/node-directory-tree') -const { ifInGitIgnore, getDocsConfig } = require('./index') +const { ifInGitIgnore } = require('./index') function restRuctureMarkdown(items, arr = []) { items.forEach((item) => { diff --git a/packages/utils/index.js b/packages/utils/index.js index e4d1d897..dca8d475 100644 --- a/packages/utils/index.js +++ b/packages/utils/index.js @@ -1,12 +1,29 @@ +const fs = require('fs') +const yaml = require('js-yaml') const { resolveApp, resolveTool } = require('./path') +const docsConfig = resolveApp('config.yml') + +/** + * get docs config, see https://github.com/nodeca/js-yaml/blob/2d1fbed8f3a76ff93cccb9a8a418b4c4a482d3d9/lib/js-yaml/loader.js#L1590-L1592 + */ +const getDocsConfig = () => { + /* avoid reference loop, so use resolveApp('config.yml') instead of refrence from paths. */ + // const docsConfig = resolveApp('config.yml') + if (!fs.existsSync(docsConfig)) { + return null + } + return yaml.safeLoad(fs.readFileSync(docsConfig)) +} + module.exports = { resolveApp, resolveTool, + getDocsConfig, // common paths docsGitIgnore: resolveApp('.gitignore'), docsBase: resolveApp(''), - docsConfig: resolveApp('config.yml'), + docsConfig, docsReadme: resolveApp('README.md'), docsBuildDist: resolveApp('.crd-dist'), cacheDirPath: resolveApp('.cache'), diff --git a/packages/utils/package.json b/packages/utils/package.json index 299d29e1..b5aa1bcc 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -3,6 +3,9 @@ "version": "1.0.0", "description": "Utils with create react doc", "main": "index.js", + "dependencies": { + "js-yaml": "^3.14.0" + }, "repository": { "type": "git", "url": "https://github.com/MuYunyun/create-react-doc", diff --git a/sitemap.xml b/sitemap.xml deleted file mode 100644 index f2e2c0cb..00000000 --- a/sitemap.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - http://muyunyun.cn/create-react-doc/README - 2020-08-21T16:12:20+03:00 - - - http://muyunyun.cn/create-react-doc/快速上手 - 2020-07-21T07:56:12+03:00 - - - http://muyunyun.cn/create-react-doc/%E9%BB%98%E8%AE%A4%E4%B8%BB%E9%A2%98 - 2020-10-21T07:56:12+03:00 - - \ No newline at end of file From d061c77155297389be29d726e318222aef15e242 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 6 Mar 2021 19:06:37 +0800 Subject: [PATCH 215/352] docs: support seo --- README.md | 12 +++---- ...64\346\226\260\346\227\245\345\277\227.md" | 3 +- ...30\350\256\244\344\270\273\351\242\230.md" | 32 ++++++++++--------- lerna.json | 2 +- packages/crd-generator-sitemap/package.json | 2 +- packages/crd-seed/package.json | 2 +- packages/create-react-doc/package.json | 4 +-- packages/leetcode-cli/package.json | 4 +-- packages/scripts/package.json | 4 +-- packages/utils/package.json | 2 +- 10 files changed, 35 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index da9d621d..c749db42 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ * 建站理念: 文件即站点 (Files as a Site)。 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 * 性能: 通过预渲染、懒加载大幅提升站点加载速度。 -* SEO: 支持 SEO, 让文档更易被搜索。 +* 搜索引擎优化: 支持 SEO, 让文档更易被搜索。 * 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 @@ -43,12 +43,12 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * 文档支持内嵌 codepen、codesandbox。 * GitHub 联动。 -使用该主题搭建的站点有: +使用该主题搭建的项目有: -* [blog](http://muyunyun.cn/blog) +* [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) -* [diana](https://muyunyun.cn/diana/) +* [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) 如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)章节。 @@ -86,7 +86,7 @@ yarn create react-doc doc ## 站点发布 -在 [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 +在 [快速上手](http://muyunyun.cn/create-react-doc/快速上手) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 ### 自动打包发布到 gh-pages (推荐) @@ -105,4 +105,4 @@ git remote add origin https://github.com/用户或组织名/项目名.git git push -u origin main ``` -> 更多内容可以访问 [站点发布](http://muyunyun.cn/create-react-doc/%E7%AB%99%E7%82%B9%E5%8F%91%E5%B8%83)、[高阶用法](http://muyunyun.cn/create-react-doc/%E9%AB%98%E9%98%B6%E7%94%A8%E6%B3%95)、[其它工具](http://muyunyun.cn/create-react-doc/%E5%85%B6%E5%AE%83%E5%B7%A5%E5%85%B7) 等章节。 +> 更多内容可以访问 [站点发布](http://muyunyun.cn/create-react-doc/站点发布)、[高阶用法](http://muyunyun.cn/create-react-doc/高阶用法)、[其它工具](http://muyunyun.cn/create-react-doc/其它工具) 等章节。 diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index b5135b84..a8197db9 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,8 +6,9 @@ - **Feature** - - 🚀 新增 crd-generator-sitemap 包。 + - 🚀 新增 crd-generator-sitemap 包, 用于生成 sitemap。 - 🚀 配置文件中新增 domain 字段用于生成 sitemap。 + ### 1.0.0 - **Feature** diff --git "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 2823ee8a..84394647 100644 --- "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -7,14 +7,14 @@ create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/creat * 文档支持内嵌 codepen、codesandbox。 * GitHub 联动。 -使用该主题搭建的站点有: +使用该主题搭建的项目有: -* [blog](http://muyunyun.cn/blog) +* [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) -* [diana](https://muyunyun.cn/diana/) +* [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) -> 如果您的产品从中受益,欢迎留言补充 +> 如果您有其它的改进优化想法, 欢迎留言补充 ## config.yml @@ -22,16 +22,18 @@ create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/creat 它支持配置的属性如下: -| 属性名 | 作用 | 类型 | 默认 | -| :------------: | :-------------------------------: | :---------: | :------: | -| title | 站点名 | string | | -| menu | 作为站点菜单的文件/文件夹路径 | string[] | | -| menuOpenKeys | 默认展开菜单的文件夹路径 | string | | -| user | Github 用户名 | string | | -| repo | Github 项目名 | string | | -| language | 站点语言 | en \| zh-cn | en | -| github-ribbons | 是否在右上角显示 github 丝带 | boolean | false | -| theme | 使用主题 | string | crd-seed | -| devTheme | 开发自定义主题时, 需设置其为 true | string | ./index | +| 属性名 | 作用 | 类型 | 默认 | +| :------------: | :----------------------------------: | :------------------: | :------: | +| title | 站点名 | string | | +| menu | 作为站点菜单的文件/文件夹路径 | string[] | | +| menuOpenKeys | 默认展开菜单的文件夹路径 | string | | +| user | Github 用户名 | string | | +| repo | Github 项目名 | string | | +| language | 站点语言 | en \| zh-cn | en | +| github-ribbons | 是否在右上角显示 github 丝带 | boolean | false | +| theme | 使用主题 | string | crd-seed | +| devTheme | 开发自定义主题时, 需设置其为 true | string | ./index | +| seo | 是否开启 SEO 优化 | { google?: boolean } | | +| domain | SEO 优化的站点域名, 用于生成 sitemap | string | | 详细用法可以参考 [config.yml](https://github.com/MuYunyun/blog/blob/main/config.yml)。 \ No newline at end of file diff --git a/lerna.json b/lerna.json index 28540d4a..ef6293f1 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.0", + "version": "1.1.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-generator-sitemap/package.json b/packages/crd-generator-sitemap/package.json index f3eda1d2..303a30d1 100644 --- a/packages/crd-generator-sitemap/package.json +++ b/packages/crd-generator-sitemap/package.json @@ -1,6 +1,6 @@ { "name": "crd-generator-sitemap", - "version": "1.0.0", + "version": "1.1.0", "description": "generator sitemap for create-react-doc", "main": "index.js", "repository": { diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 0f0fcb5f..b69a6551 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.0.0", + "version": "1.1.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index cf778c91..ec8ec2a4 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.0.0", + "version": "1.1.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.0.0", + "crd-scripts": "^1.1.0", "crd-templates": "^1.0.0", "crd-theme": "^1.0.0", "fs-extra": "^5.0.0" diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index d486c3a4..431436fb 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "1.0.0", + "version": "1.1.0", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" @@ -8,7 +8,7 @@ "dependencies": { "axios": "^0.21.1", "commander": "^2.20.0", - "crd-utils": "^1.0.0", + "crd-utils": "^1.1.0", "enquirer": "^2.3.0", "graphql-request": "^1.8.2", "inquirer": "^7.3.3", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index a24d436a..953af3b5 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.0.0", + "version": "1.1.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -24,7 +24,7 @@ "copy-template-dir": "^1.3.0", "crd-prerender-spa-plugin": "^0.1.0", "crd-theme": "^1.0.0", - "crd-utils": "^1.0.0", + "crd-utils": "^1.1.0", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", "detect-port": "^1.2.2", diff --git a/packages/utils/package.json b/packages/utils/package.json index b5aa1bcc..969619bc 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "crd-utils", - "version": "1.0.0", + "version": "1.1.0", "description": "Utils with create react doc", "main": "index.js", "dependencies": { From 96e19311dc1bfe4acf3bf8073d9114d0a6c3138f Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 7 Mar 2021 18:16:46 +0800 Subject: [PATCH 216/352] feat: update --- README.md | 2 +- lerna.json | 2 +- packages/crd-generator-sitemap/README.md | 3 +++ packages/crd-generator-sitemap/package.json | 2 +- packages/crd-seed/README.md | 17 +++++++++++++++++ packages/crd-seed/package.json | 2 +- packages/create-react-doc/README.md | 2 +- packages/create-react-doc/package.json | 6 +++--- packages/leetcode-cli/package.json | 4 ++-- packages/scripts/README.md | 2 +- packages/scripts/package.json | 7 ++++--- packages/theme/README.md | 3 +++ packages/theme/package.json | 2 +- packages/utils/README.md | 3 +++ packages/utils/package.json | 2 +- 15 files changed, 43 insertions(+), 16 deletions(-) create mode 100644 packages/crd-generator-sitemap/README.md create mode 100644 packages/crd-seed/README.md create mode 100644 packages/theme/README.md create mode 100644 packages/utils/README.md diff --git a/README.md b/README.md index c749db42..806ffced 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) * [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) -如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)章节。 +如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/自定义主题)章节。 ## 快速上手 diff --git a/lerna.json b/lerna.json index ef6293f1..c54dc9c6 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.1.0", + "version": "1.1.2", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-generator-sitemap/README.md b/packages/crd-generator-sitemap/README.md new file mode 100644 index 00000000..fae75e63 --- /dev/null +++ b/packages/crd-generator-sitemap/README.md @@ -0,0 +1,3 @@ +### crd-generator-sitemap + +[create-react-doc](https://github.com/MuYunyun/create-react-doc) SEO 插件, 用于生成站点地图。 \ No newline at end of file diff --git a/packages/crd-generator-sitemap/package.json b/packages/crd-generator-sitemap/package.json index 303a30d1..a7b9e505 100644 --- a/packages/crd-generator-sitemap/package.json +++ b/packages/crd-generator-sitemap/package.json @@ -1,6 +1,6 @@ { "name": "crd-generator-sitemap", - "version": "1.1.0", + "version": "1.1.2", "description": "generator sitemap for create-react-doc", "main": "index.js", "repository": { diff --git a/packages/crd-seed/README.md b/packages/crd-seed/README.md new file mode 100644 index 00000000..5baeff58 --- /dev/null +++ b/packages/crd-seed/README.md @@ -0,0 +1,17 @@ +## 主题 + +create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题支持以下特性: + +* 适配移动、PC 多端展示。 +* 支持暗黑模式。 +* 文档支持内嵌 codepen、codesandbox。 +* GitHub 联动。 + +使用该主题搭建的项目有: + +* [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) + * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) + * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) +* [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) + +如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/自定义主题)章节。 \ No newline at end of file diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index b69a6551..96a18079 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.1.0", + "version": "1.1.2", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/README.md b/packages/create-react-doc/README.md index 9ea4ddd2..293ea2f1 100644 --- a/packages/create-react-doc/README.md +++ b/packages/create-react-doc/README.md @@ -12,7 +12,7 @@ # react-doc -react-doc 是配合 Create React Doc 使用的脚手架。 +react-doc 是配合 [Create React Doc](https://github.com/MuYunyun/create-react-doc) 使用的脚手架。 ```bash $ react-doc doc // 在当前文件夹下创建名为 doc 的文档站点 diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index ec8ec2a4..07860544 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.1.0", + "version": "1.1.2", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.1.0", + "crd-scripts": "^1.1.2", "crd-templates": "^1.0.0", - "crd-theme": "^1.0.0", + "crd-theme": "^1.1.2", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index 431436fb..5c4aa57c 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "1.1.0", + "version": "1.1.2", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" @@ -8,7 +8,7 @@ "dependencies": { "axios": "^0.21.1", "commander": "^2.20.0", - "crd-utils": "^1.1.0", + "crd-utils": "^1.1.2", "enquirer": "^2.3.0", "graphql-request": "^1.8.2", "inquirer": "^7.3.3", diff --git a/packages/scripts/README.md b/packages/scripts/README.md index 25d0b159..612fabf1 100644 --- a/packages/scripts/README.md +++ b/packages/scripts/README.md @@ -12,4 +12,4 @@ # crd-scripts -crd-scripts 封装提供了一系列打包构建脚本。 +crd-scripts 封装提供了一系列构建、发布脚本。 diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 953af3b5..f4202235 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.1.0", + "version": "1.1.2", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -23,8 +23,9 @@ "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", "crd-prerender-spa-plugin": "^0.1.0", - "crd-theme": "^1.0.0", - "crd-utils": "^1.1.0", + "crd-theme": "^1.1.2", + "crd-utils": "^1.1.2", + "crd-generator-sitemap": "^1.1.2", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", "detect-port": "^1.2.2", diff --git a/packages/theme/README.md b/packages/theme/README.md new file mode 100644 index 00000000..a606b9da --- /dev/null +++ b/packages/theme/README.md @@ -0,0 +1,3 @@ +### crd-theme + +[create-react-doc](https://github.com/MuYunyun/create-react-doc) 的主题加载包。提供了懒加载, 文件内容解析等能力。 \ No newline at end of file diff --git a/packages/theme/package.json b/packages/theme/package.json index 8b8f11ea..c405a5f4 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.0.0", + "version": "1.1.2", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/utils/README.md b/packages/utils/README.md new file mode 100644 index 00000000..1cecf0aa --- /dev/null +++ b/packages/utils/README.md @@ -0,0 +1,3 @@ +### crd-utils + +[create-react-doc](https://github.com/MuYunyun/create-react-doc) 的工具包。 \ No newline at end of file diff --git a/packages/utils/package.json b/packages/utils/package.json index 969619bc..58cc68ca 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "crd-utils", - "version": "1.1.0", + "version": "1.1.2", "description": "Utils with create react doc", "main": "index.js", "dependencies": { From a2804972d9b55924799f68d120a4e799fc27aabf Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 7 Mar 2021 18:43:14 +0800 Subject: [PATCH 217/352] chore: publish --- lerna.json | 2 +- packages/crd-generator-sitemap/package.json | 2 +- packages/crd-seed/package.json | 2 +- packages/create-react-doc/package.json | 6 +++--- packages/leetcode-cli/package.json | 4 ++-- packages/scripts/package.json | 8 ++++---- packages/theme/package.json | 2 +- packages/utils/package.json | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lerna.json b/lerna.json index c54dc9c6..e4502755 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.1.2", + "version": "1.1.3", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-generator-sitemap/package.json b/packages/crd-generator-sitemap/package.json index a7b9e505..ca80ea0a 100644 --- a/packages/crd-generator-sitemap/package.json +++ b/packages/crd-generator-sitemap/package.json @@ -1,6 +1,6 @@ { "name": "crd-generator-sitemap", - "version": "1.1.2", + "version": "1.1.3", "description": "generator sitemap for create-react-doc", "main": "index.js", "repository": { diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 96a18079..6e86f887 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.1.2", + "version": "1.1.3", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 07860544..5e1dc579 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.1.2", + "version": "1.1.3", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.1.2", + "crd-scripts": "^1.1.3", "crd-templates": "^1.0.0", - "crd-theme": "^1.1.2", + "crd-theme": "^1.1.3", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index 5c4aa57c..61c5cd2e 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "1.1.2", + "version": "1.1.3", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" @@ -8,7 +8,7 @@ "dependencies": { "axios": "^0.21.1", "commander": "^2.20.0", - "crd-utils": "^1.1.2", + "crd-utils": "^1.1.3", "enquirer": "^2.3.0", "graphql-request": "^1.8.2", "inquirer": "^7.3.3", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index f4202235..3d34b444 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.1.2", + "version": "1.1.3", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -22,10 +22,10 @@ "colors-cli": "^1.0.13", "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", + "crd-generator-sitemap": "^1.1.3", "crd-prerender-spa-plugin": "^0.1.0", - "crd-theme": "^1.1.2", - "crd-utils": "^1.1.2", - "crd-generator-sitemap": "^1.1.2", + "crd-theme": "^1.1.3", + "crd-utils": "^1.1.3", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", "detect-port": "^1.2.2", diff --git a/packages/theme/package.json b/packages/theme/package.json index c405a5f4..12227832 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.1.2", + "version": "1.1.3", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/utils/package.json b/packages/utils/package.json index 58cc68ca..cde08600 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "crd-utils", - "version": "1.1.2", + "version": "1.1.3", "description": "Utils with create react doc", "main": "index.js", "dependencies": { From 04c27623261fb56c260869629690ee7f3bda68eb Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 8 Mar 2021 19:11:11 +0800 Subject: [PATCH 218/352] docs: update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 806ffced..ccacdea7 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ * 建站理念: 文件即站点 (Files as a Site)。 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 * 性能: 通过预渲染、懒加载大幅提升站点加载速度。 -* 搜索引擎优化: 支持 SEO, 让文档更易被搜索。 +* 搜索引擎优化: 支持 SEO, 让文档更易被搜索。相关文档: [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) * 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 From 2cc0fcb24ccb149125495eb02aedb25556408d1b Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 12 Mar 2021 03:16:53 +0800 Subject: [PATCH 219/352] fix: jump edit github --- ...64\346\226\260\346\227\245\345\277\227.md" | 7 +++++++ lerna.json | 2 +- packages/crd-seed/layout/index.js | 20 ++++++++++--------- packages/crd-seed/package.json | 2 +- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index a8197db9..e219f427 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,6 +2,13 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 + +### 1.1.4 + +- **Fix** + + - 🐞 修复点击 Edit In Github 失效的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/86)。 + ### 1.1.0 - **Feature** diff --git a/lerna.json b/lerna.json index e4502755..6c896801 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.1.3", + "version": "1.1.4", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 44144bec..a01a06e8 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -86,13 +86,13 @@ function BasicLayout({ ) } /> - ); + ) })} - ); - }; + ) + } const renderMenu = (menus) => { - if (menus.length < 1) return null; + if (menus.length < 1) return null return ( { - setInlineCollapsed(!inlineCollapsed); + setInlineCollapsed(!inlineCollapsed) }} menuStyle={{ height: "100vh", @@ -111,27 +111,29 @@ function BasicLayout({ }} selectedKey={selectedKey} onSelect={(keyValue) => { - setSelectedKey(keyValue); + setSelectedKey(keyValue) }} defaultOpenKeys={curOpenKeys} > {renderSubMenuItem(menus || [])} - ); - }; + ) + } /** * this section is to show article's relevant information * such as edit in github and so on. */ const renderPageHeader = () => { + const curMenuSource = menuSource.filter(r => pathname.indexOf(r.title) > -1) + const editPathName = curMenuSource[0] && curMenuSource[0].path return (
    {user && repo ? ( diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 6e86f887..7ecbca1b 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.1.3", + "version": "1.1.4", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From b7d4a115934e557b26321bec45bce1e8bbdb22a8 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 16 Mar 2021 18:47:29 +0800 Subject: [PATCH 220/352] docs: update en --- README-en.md | 127 ++++++++++++++++++++------------------------------- 1 file changed, 50 insertions(+), 77 deletions(-) diff --git a/README-en.md b/README-en.md index 087d51c5..dcbb455a 100644 --- a/README-en.md +++ b/README-en.md @@ -10,126 +10,99 @@ \( _.-" `--" -[![npm version](https://img.shields.io/npm/v/create-react-doc)](https://badge.fury.io/js/create-react-doc) [![week download](https://img.shields.io/npm/dw/create-react-doc.svg)](https://www.npmjs.com/package/create-react-doc) ![LICENSE MIT](https://img.shields.io/npm/l/create-react-doc.svg) +[![npm version](https://img.shields.io/npm/v/create-react-doc)](https://badge.fury.io/js/create-react-doc) +[![week download](https://img.shields.io/npm/dw/create-react-doc.svg)](https://www.npmjs.com/package/create-react-doc) +![views](https://raw.githubusercontent.com/MuYunyun/create-react-doc/traffic/traffic-create-react-doc/views.svg) +![views](https://raw.githubusercontent.com/MuYunyun/create-react-doc/traffic/traffic-create-react-doc/views_per_week.svg) +![clones](https://raw.githubusercontent.com/MuYunyun/create-react-doc/traffic/traffic-create-react-doc/clones_per_week.svg) +![LICENSE MIT](https://img.shields.io/npm/l/create-react-doc.svg) English | [简体中文](./README.md) # Create React Doc -Create React Doc is a markdown doc site generator for React. You can write markdown sites or blogs with no build configuration just like [create-react-app](https://github.com/facebook/create-react-app). +[Create React Doc](https://github.com/MuYunyun/create-react-doc) is a markdown document site generation tool using React just like [create-react-app](https://github.com/facebook/create-react-app), developers can use Create React Doc to develop, deploy documents or blog sites without worrying about additional environment configuration information. ## Features -* Write markdown docs with no build configuration. - * Dark Mode. - * Support search global. - * Mobile Friendly. -* Lazy load and Hot load for markdown data. -* Generate menu autoly based file directory. -* Support deploy to [GitHub Pages](https://pages.github.com/). +* The idea of ​​building a site: Just write markdown files as a blog site [like me](https://github.com/MuYunyun/blog). +* Out of box: One-click generation of documents and blog sites by specifying directories or documents, no need to care about site environment configuration information. +* Performance: greatly improve site loading speed through pre-rendering and lazy loading. +* Search engine optimization: Support SEO, making documents easier to search. Related documents: [SEO Practice in SPA Site](https://github.com/MuYunyun/blog/issues/84) +* Personalization: Support [custom theme](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB% E9%A2%98). +* Workflow: Integrate Github actions, support automated packaging and publishing sites. -## Sites built with create-react-doc +> [Quick Start](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) -* [muyunyun's blog](http://muyunyun.cn/blog) -* [create react doc](http://muyunyun.cn/create-react-doc) +## Subject -![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) +Create React Doc provides the official default theme [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed). The theme supports the following features: -## Quick Overview +* Adapt to mobile and PC multi-terminal display. +* Support dark mode. +* The document supports embedded codepen, codesandbox. +* GitHub linkage. -```bash -npx create-react-doc my-doc -npm install && cd my-doc -npm start -``` +The projects built using this theme are: + +* [blog](https://github.com/MuYunyun/blog), [site](http://muyunyun.cn/blog) + * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) + * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) +* [diana](https://github.com/MuYunyun/diana), [site](https://muyunyun.cn/diana/) -Then open [http://localhost:3000/]() to see your doc. -When you're ready to deploy to production, create a minified bundle with npm run build. +If you want to customize or share personal themes, you can refer to the [Custom Theme](http://muyunyun.cn/create-react-doc/CustomTheme) chapter. -## Usage +## Get started quickly -**create-react-doc** is very easy to use. You don’t need to install or configure tools like webpack or Babel. They are preconfigured and hidden so that you can focus on the doc. +**Create React Doc** is very easy to use. Developers don't need to install or configure additional tools such as webpack or Babel, they are built-in and hidden in the scaffolding, so developers can concentrate on document writing. -You can choose any one kind way to create a doc site as follow: +If you want to create a site file `doc` under the current file, here are three ways to quickly build a site: ### npx ```bash -npx create-react-doc my-doc +npx create-react-doc doc ``` ### npm ```bash -npm init create-react-doc my-doc +npm init create-react-doc doc ``` ### yarn ```bash -yarn create create-react-doc my-doc -``` - -Once the installation is done, you can open your project folder: - -``` -npm install && cd my-doc +yarn create react-doc doc ``` -Inside the newly created project, you can run some built-in commands: - -### `npm start` or `yarn start` +![](http://with.muyunyun.cn/0f0cf6e8cb68b18399eac2927f74b063.jpg) -Runs the doc in development mode. -Open [http://localhost:3000]() to view it in the browser. +> If you want to pull the content of the template to the current folder, you can replace the `doc` of the above command with `.`, such as executing `npx create-react-doc .`. -The page will automatically reload if you make changes to the code. +Then execute `cd doc && yarn && yarn start`, you can preview the site at `localhost: 3000`, if the site document changes, the site will automatically reload. -### `npm run build` or `yarn build` + -Builds the doc for production to the build folder. -It correctly bundles React in production mode and optimizes the build for the best performance. +## Site release -The build is minified and the filenames include the hashes. +In the [Quick Start](http://muyunyun.cn/create-react-doc/QuickStart) section, it introduces how to quickly build a site. This section will introduce how to package and publish the built site to gh-pages. -Your doc site is ready to be deployed. +### Automatically package and publish to gh-pages (recommended) -### `npm run deploy` or `yarn deploy` +The initialized template project integrates the [ci configuration](https://github.com/MuYunyun/create-react-doc/blob/main/packages/templates/default/.github/workflows/gh-pages.yml) of `Github action`, the user only needs to execute `git push` on the main branch to complete the automatic deployment of the site. -The doc'll deployed to GitHub Pages rely `user`, `repo` in [config.yml](https://github.com/MuYunyun/create-react-doc#configyml) +![](http://with.muyunyun.cn/ea24d511f76efe5ba5d13bb6b1609aac.jpg) -## config.yml - -There is some configuration provided for you to adjust doc sites. +If it is the first deployment, after performing the following operations, you need to select Github Pages as gh-pages in the setting tab of the project. (See [First Deployment with GITHUB_TOKEN](https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-first-deployment-with-github_token) for details) ```bash -# Site title -title: Time Flying - -# Point witch files to show as Menu -## you can also set detailed dir, such as BasicSkill/css -menu: React,BasicSkill,Algorithm -## set init open menu keys -menuOpenKeys: /BasicSkill - -# Github -## if you want to show editing pages on github or deploy to GitHub Pages, you should config these arguments. -user: MuYunyun -repo: blog -branch: main # the default value of branch is main -deploy_branch: gh-pages # which branch to deploy.(default: gh-pages) -# publish: # if you want upload to gitlab or other git platform, you can set full git url in it - -# use search plugin: provide ability for searching site globally in the site. -# default value: true -search: true -# host: '' # the url host to search -# search_map: {} # search_map is connected to menu props - -# Available values: en| zh-cn -language: en +git init +git add. +git commit -m "first commit" +git branch -M main +git remote add origin https://github.com/user or organization name/project name.git +git push -u origin main ``` -## Advanced Usage - -* If you not want to show some private files, you can set it in `.gitignore`, and the file'll be ignored to show in the docs. \ No newline at end of file +> For more content, please visit [Site Release](http://muyunyun.cn/create-react-doc/SiteRelease), [Advanced Usage](http://muyunyun.cn/create-react-doc/HighOrderusage), [other tools](http://muyunyun.cn/create-react-doc/othertools) and other chapters. \ No newline at end of file From 2cd1ac0ed9585b56cd5fd7407d1c827bdbc9d522 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 31 Mar 2021 13:52:27 +0800 Subject: [PATCH 221/352] fix: leetcode-cli usage in mac --- packages/leetcode-cli/README.md | 8 + packages/leetcode-cli/leetcode-table.md | 130 +++++++ packages/leetcode-cli/problems.json | 461 ++++++++++++++---------- packages/leetcode-cli/src/leetcode.js | 4 +- 4 files changed, 412 insertions(+), 191 deletions(-) create mode 100644 packages/leetcode-cli/leetcode-table.md diff --git a/packages/leetcode-cli/README.md b/packages/leetcode-cli/README.md index 731ce0da..ceedd03a 100644 --- a/packages/leetcode-cli/README.md +++ b/packages/leetcode-cli/README.md @@ -55,3 +55,11 @@ module.exports = { transform_markdown_table } * ![](http://with.muyunyun.cn/f9301658ff81e6d47dcaab3684cab1ce.jpg) * 获取 cookie 后, 使用 [graphql-request](https://github.com/prisma-labs/graphql-request) 调用 graphql 接口获取题目详情信息。 * 自定义生成 [markdown table](https://github.com/MuYunyun/blog/tree/main/LeetCode)。 + +### Q & A + +* 如何开发调试? + +进入[项目目录](https://github.com/MuYunyun/create-react-doc/tree/main/packages/leetcode-cli), 执行上述 Usage 中的 leetcode 命令即可。 + +> 因为 [puppeteer](https://github.com/puppeteer/puppeteer/issues/6425) 已知问题, 暂时只支持 mac 系统使用, 后续更新。 \ No newline at end of file diff --git a/packages/leetcode-cli/leetcode-table.md b/packages/leetcode-cli/leetcode-table.md new file mode 100644 index 00000000..12a14f7d --- /dev/null +++ b/packages/leetcode-cli/leetcode-table.md @@ -0,0 +1,130 @@ +| # | Title | Explanation | Difficulty | Type | +|:---:|:---:|:---:|:---:|:---:| +| 1 | [Two Sum](https://leetcode.com/problems/two-sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/1.Two_Sum.md) | Easy | Array, Hash Table | +| 2 | [Add Two Numbers](https://leetcode.com/problems/add-two-numbers/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/2.Add_Two_Numbers.md) | Medium | Recursion, Linked List, Math | +| 3 | [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/3.Longest_Substring_Without_Repeating_Characters.md) | Medium | Hash Table, Two Pointers, String, Sliding Window | +| 4 | [Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/4.Median_of_Two_Sorted_Arrays.md) | Hard | Array, Binary Search, Divide and Conquer | +| 7 | [Reverse Integer](https://leetcode.com/problems/reverse-integer/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/7.Reverse_Integer.md) | Easy | Math | +| 9 | [Palindrome Number](https://leetcode.com/problems/palindrome-number/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/9.Palindrome_Number.md) | Easy | Math | +| 11 | [Container With Most Water](https://leetcode.com/problems/container-with-most-water/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/11.Container_With_Most_Water.md) | Medium | Array, Two Pointers | +| 13 | [Roman to Integer](https://leetcode.com/problems/roman-to-integer/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/13.Roman_to_Integer.md) | Easy | Math, String | +| 14 | [Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/14.Longest_Common_Prefix.md) | Easy | String | +| 15 | [3Sum](https://leetcode.com/problems/3sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/15.3Sum.md) | Medium | Array, Two Pointers | +| 16 | [3Sum Closest](https://leetcode.com/problems/3sum-closest/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/16.3Sum_Closest.md) | Medium | Array, Two Pointers | +| 17 | [Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/17.Letter_Combinations_of_a_Phone_Number.md) | Medium | Depth-first Search, Recursion, String, Backtracking | +| 18 | [4Sum](https://leetcode.com/problems/4sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/18.4Sum.md) | Medium | Array, Hash Table, Two Pointers | +| 19 | [Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/19.Remove_Nth_Node_From_End_of_List.md) | Medium | Linked List, Two Pointers | +| 20 | [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/20.Valid_Parentheses.md) | Easy | Stack, String | +| 21 | [Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/21.Merge_Two_Sorted_Lists.md) | Easy | Recursion, Linked List | +| 22 | [Generate Parentheses](https://leetcode.com/problems/generate-parentheses/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/22.Generate_Parentheses.md) | Medium | String, Backtracking | +| 23 | [Merge k Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/23.Merge_k_Sorted_Lists.md) | Hard | Heap, Linked List, Divide and Conquer | +| 24 | [Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/24.Swap_Nodes_in_Pairs.md) | Medium | Recursion, Linked List | +| 25 | [Reverse Nodes in k-Group](https://leetcode.com/problems/reverse-nodes-in-k-group/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/25.Reverse_Nodes_in_k-Group.md) | Hard | Linked List | +| 26 | [Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/26.Remove_Duplicates_from_Sorted_Array.md) | Easy | Array, Two Pointers | +| 27 | [Remove Element](https://leetcode.com/problems/remove-element/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/27.Remove_Element.md) | Easy | Array, Two Pointers | +| 28 | [Implement strStr()](https://leetcode.com/problems/implement-strstr/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/28.Implement_strStr().md) | Easy | Two Pointers, String | +| 33 | [Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/33.Search_in_Rotated_Sorted_Array.md) | Medium | Array, Binary Search | +| 35 | [Search Insert Position](https://leetcode.com/problems/search-insert-position/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/35.Search_Insert_Position.md) | Easy | Array, Binary Search | +| 36 | [Valid Sudoku](https://leetcode.com/problems/valid-sudoku/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/36.Valid_Sudoku.md) | Medium | Hash Table | +| 37 | [Sudoku Solver](https://leetcode.com/problems/sudoku-solver/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/37.Sudoku_Solver.md) | Hard | Hash Table, Backtracking | +| 38 | [Count and Say](https://leetcode.com/problems/count-and-say/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/38.Count_and_Say.md) | Easy | String | +| 39 | [Combination Sum](https://leetcode.com/problems/combination-sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/39.Combination_Sum.md) | Medium | Array, Backtracking | +| 40 | [Combination Sum II](https://leetcode.com/problems/combination-sum-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/40.Combination_Sum_II.md) | Medium | Array, Backtracking | +| 46 | [Permutations](https://leetcode.com/problems/permutations/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/46.Permutations.md) | Medium | Backtracking | +| 47 | [Permutations II](https://leetcode.com/problems/permutations-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/47.Permutations_II.md) | Medium | Backtracking | +| 48 | [Rotate Image](https://leetcode.com/problems/rotate-image/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/48.Rotate_Image.md) | Medium | Array | +| 49 | [Group Anagrams](https://leetcode.com/problems/group-anagrams/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/49.Group_Anagrams.md) | Medium | Hash Table, String | +| 50 | [Pow(x, n)](https://leetcode.com/problems/powx-n/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/50.Pow(x,_n).md) | Medium | Math, Binary Search | +| 51 | [N-Queens](https://leetcode.com/problems/n-queens/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/51.N-Queens.md) | Hard | Backtracking | +| 52 | [N-Queens II](https://leetcode.com/problems/n-queens-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/52.N-Queens_II.md) | Hard | Backtracking | +| 61 | [Rotate List](https://leetcode.com/problems/rotate-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/61.Rotate_List.md) | Medium | Linked List, Two Pointers | +| 62 | [Unique Paths](https://leetcode.com/problems/unique-paths/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/62.Unique_Paths.md) | Medium | Array, Dynamic Programming | +| 64 | [Minimum Path Sum](https://leetcode.com/problems/minimum-path-sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/64.Minimum_Path_Sum.md) | Medium | Array, Dynamic Programming | +| 66 | [Plus One](https://leetcode.com/problems/plus-one/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/66.Plus_One.md) | Easy | Array | +| 67 | [Add Binary](https://leetcode.com/problems/add-binary/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/67.Add_Binary.md) | Easy | Math, String | +| 69 | [Sqrt(x)](https://leetcode.com/problems/sqrtx/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/69.Sqrt(x).md) | Easy | Math, Binary Search | +| 70 | [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/70.Climbing_Stairs.md) | Easy | Dynamic Programming | +| 71 | [Simplify Path](https://leetcode.com/problems/simplify-path/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/71.Simplify_Path.md) | Medium | Stack, String | +| 75 | [Sort Colors](https://leetcode.com/problems/sort-colors/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/75.Sort_Colors.md) | Medium | Sort, Array, Two Pointers | +| 77 | [Combinations](https://leetcode.com/problems/combinations/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/77.Combinations.md) | Medium | Backtracking | +| 78 | [Subsets](https://leetcode.com/problems/subsets/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/78.Subsets.md) | Medium | Bit Manipulation, Array, Backtracking | +| 79 | [Word Search](https://leetcode.com/problems/word-search/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/79.Word_Search.md) | Medium | Array, Backtracking | +| 80 | [Remove Duplicates from Sorted Array II](https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/80.Remove_Duplicates_from_Sorted_Array_II.md) | Medium | Array, Two Pointers | +| 82 | [Remove Duplicates from Sorted List II](https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/82.Remove_Duplicates_from_Sorted_List_II.md) | Medium | Linked List | +| 83 | [Remove Duplicates from Sorted List](https://leetcode.com/problems/remove-duplicates-from-sorted-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/83.Remove_Duplicates_from_Sorted_List.md) | Easy | Linked List | +| 86 | [Partition List](https://leetcode.com/problems/partition-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/86.Partition_List.md) | Medium | Linked List, Two Pointers | +| 88 | [Merge Sorted Array](https://leetcode.com/problems/merge-sorted-array/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/88.Merge_Sorted_Array.md) | Easy | Array, Two Pointers | +| 89 | [Gray Code](https://leetcode.com/problems/gray-code/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/89.Gray_Code.md) | Medium | Backtracking | +| 90 | [Subsets II](https://leetcode.com/problems/subsets-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/90.Subsets_II.md) | Medium | Array, Backtracking | +| 92 | [Reverse Linked List II](https://leetcode.com/problems/reverse-linked-list-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/92.Reverse_Linked_List_II.md) | Medium | Linked List | +| 93 | [Restore IP Addresses](https://leetcode.com/problems/restore-ip-addresses/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/93.Restore_IP_Addresses.md) | Medium | String, Backtracking | +| 94 | [Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/94.Binary_Tree_Inorder_Traversal.md) | Medium | Stack, Tree, Hash Table | +| 98 | [Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/98.Validate_Binary_Search_Tree.md) | Medium | Tree, Depth-first Search, Recursion | +| 100 | [Same Tree](https://leetcode.com/problems/same-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/100.Same_Tree.md) | Easy | Tree, Depth-first Search | +| 101 | [Symmetric Tree](https://leetcode.com/problems/symmetric-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/101.Symmetric_Tree.md) | Easy | Tree, Depth-first Search, Breadth-first Search | +| 102 | [Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/102.Binary_Tree_Level_Order_Traversal.md) | Medium | Tree, Breadth-first Search | +| 103 | [Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/103.Binary_Tree_Zigzag_Level_Order_Traversal.md) | Medium | Stack, Tree, Breadth-first Search | +| 104 | [Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/104.Maximum_Depth_of_Binary_Tree.md) | Easy | Tree, Depth-first Search, Recursion | +| 107 | [Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/107.Binary_Tree_Level_Order_Traversal_II.md) | Medium | Tree, Breadth-first Search | +| 108 | [Convert Sorted Array to Binary Search Tree](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/108.Convert_Sorted_Array_to_Binary_Search_Tree.md) | Easy | Tree, Depth-first Search | +| 110 | [Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/110.Balanced_Binary_Tree.md) | Easy | Tree, Depth-first Search, Recursion | +| 111 | [Minimum Depth of Binary Tree](https://leetcode.com/problems/minimum-depth-of-binary-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/111.Minimum_Depth_of_Binary_Tree.md) | Easy | Tree, Depth-first Search, Breadth-first Search | +| 112 | [Path Sum](https://leetcode.com/problems/path-sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/112.Path_Sum.md) | Easy | Tree, Depth-first Search | +| 113 | [Path Sum II](https://leetcode.com/problems/path-sum-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/113.Path_Sum_II.md) | Medium | Tree, Depth-first Search | +| 120 | [Triangle](https://leetcode.com/problems/triangle/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/120.Triangle.md) | Medium | Array, Dynamic Programming | +| 121 | [Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/121.Best_Time_to_Buy_and_Sell_Stock.md) | Easy | Array, Dynamic Programming | +| 125 | [Valid Palindrome](https://leetcode.com/problems/valid-palindrome/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/125.Valid_Palindrome.md) | Easy | Two Pointers, String | +| 127 | [Word Ladder](https://leetcode.com/problems/word-ladder/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/127.Word_Ladder.md) | Hard | Breadth-first Search | +| 129 | [Sum Root to Leaf Numbers](https://leetcode.com/problems/sum-root-to-leaf-numbers/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/129.Sum_Root_to_Leaf_Numbers.md) | Medium | Tree, Depth-first Search | +| 130 | [Surrounded Regions](https://leetcode.com/problems/surrounded-regions/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/130.Surrounded_Regions.md) | Medium | Depth-first Search, Breadth-first Search, Union Find | +| 131 | [Palindrome Partitioning](https://leetcode.com/problems/palindrome-partitioning/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/131.Palindrome_Partitioning.md) | Medium | Depth-first Search, Dynamic Programming, Backtracking | +| 143 | [Reorder List](https://leetcode.com/problems/reorder-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/143.Reorder_List.md) | Medium | Linked List | +| 144 | [Binary Tree Preorder Traversal](https://leetcode.com/problems/binary-tree-preorder-traversal/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/144.Binary_Tree_Preorder_Traversal.md) | Medium | Stack, Tree | +| 145 | [Binary Tree Postorder Traversal](https://leetcode.com/problems/binary-tree-postorder-traversal/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/145.Binary_Tree_Postorder_Traversal.md) | Medium | Stack, Tree | +| 147 | [Insertion Sort List](https://leetcode.com/problems/insertion-sort-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/147.Insertion_Sort_List.md) | Medium | Sort, Linked List | +| 148 | [Sort List](https://leetcode.com/problems/sort-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/148.Sort_List.md) | Medium | Sort, Linked List | +| 149 | [Max Points on a Line](https://leetcode.com/problems/max-points-on-a-line/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/149.Max_Points_on_a_Line.md) | Hard | Hash Table, Math | +| 150 | [Evaluate Reverse Polish Notation](https://leetcode.com/problems/evaluate-reverse-polish-notation/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/150.Evaluate_Reverse_Polish_Notation.md) | Medium | Stack | +| 151 | [Reverse Words in a String](https://leetcode.com/problems/reverse-words-in-a-string/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/151.Reverse_Words_in_a_String.md) | Medium | String | +| 167 | [Two Sum II - Input array is sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/167.Two_Sum_II_-_Input_array_is_sorted.md) | Easy | Array, Two Pointers, Binary Search | +| 199 | [Binary Tree Right Side View](https://leetcode.com/problems/binary-tree-right-side-view/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/199.Binary_Tree_Right_Side_View.md) | Medium | Tree, Depth-first Search, Breadth-first Search, Recursion, Queue | +| 200 | [Number of Islands](https://leetcode.com/problems/number-of-islands/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/200.Number_of_Islands.md) | Medium | Depth-first Search, Breadth-first Search, Union Find | +| 202 | [Happy Number](https://leetcode.com/problems/happy-number/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/202.Happy_Number.md) | Easy | Hash Table, Math | +| 203 | [Remove Linked List Elements](https://leetcode.com/problems/remove-linked-list-elements/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/203.Remove_Linked_List_Elements.md) | Easy | Linked List | +| 205 | [Isomorphic Strings](https://leetcode.com/problems/isomorphic-strings/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/205.Isomorphic_Strings.md) | Easy | Hash Table | +| 206 | [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/206.Reverse_Linked_List.md) | Easy | Linked List | +| 209 | [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/209.Minimum_Size_Subarray_Sum.md) | Medium | Array, Two Pointers, Binary Search | +| 215 | [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/215.Kth_Largest_Element_in_an_Array.md) | Medium | Heap, Divide and Conquer | +| 216 | [Combination Sum III](https://leetcode.com/problems/combination-sum-iii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/216.Combination_Sum_III.md) | Medium | Array, Backtracking | +| 217 | [Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/217.Contains_Duplicate.md) | Easy | Array, Hash Table | +| 219 | [Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/219.Contains_Duplicate_II.md) | Easy | Array, Hash Table | +| 220 | [Contains Duplicate III](https://leetcode.com/problems/contains-duplicate-iii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/220.Contains_Duplicate_III.md) | Medium | Sort, Ordered Map | +| 222 | [Count Complete Tree Nodes](https://leetcode.com/problems/count-complete-tree-nodes/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/222.Count_Complete_Tree_Nodes.md) | Medium | Tree, Binary Search | +| 226 | [Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/226.Invert_Binary_Tree.md) | Easy | Tree | +| 230 | [Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/230.Kth_Smallest_Element_in_a_BST.md) | Medium | Tree, Binary Search | +| 234 | [Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/234.Palindrome_Linked_List.md) | Easy | Linked List, Two Pointers | +| 235 | [Lowest Common Ancestor of a Binary Search Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/235.Lowest_Common_Ancestor_of_a_Binary_Search_Tree.md) | Easy | Tree | +| 236 | [Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/236.Lowest_Common_Ancestor_of_a_Binary_Tree.md) | Medium | Tree | +| 237 | [Delete Node in a Linked List](https://leetcode.com/problems/delete-node-in-a-linked-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/237.Delete_Node_in_a_Linked_List.md) | Easy | Linked List | +| 242 | [Valid Anagram](https://leetcode.com/problems/valid-anagram/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/242.Valid_Anagram.md) | Easy | Sort, Hash Table | +| 257 | [Binary Tree Paths](https://leetcode.com/problems/binary-tree-paths/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/257.Binary_Tree_Paths.md) | Easy | Tree, Depth-first Search | +| 279 | [Perfect Squares](https://leetcode.com/problems/perfect-squares/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/279.Perfect_Squares.md) | Medium | Breadth-first Search, Math, Dynamic Programming | +| 283 | [Move Zeroes](https://leetcode.com/problems/move-zeroes/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/283.Move_Zeroes.md) | Easy | Array, Two Pointers | +| 290 | [Word Pattern](https://leetcode.com/problems/word-pattern/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/290.Word_Pattern.md) | Easy | Hash Table | +| 328 | [Odd Even Linked List](https://leetcode.com/problems/odd-even-linked-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/328.Odd_Even_Linked_List.md) | Medium | Linked List | +| 341 | [Flatten Nested List Iterator](https://leetcode.com/problems/flatten-nested-list-iterator/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/341.Flatten_Nested_List_Iterator.md) | Medium | Stack, Design | +| 344 | [Reverse String](https://leetcode.com/problems/reverse-string/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/344.Reverse_String.md) | Easy | Two Pointers, String | +| 347 | [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/347.Top_K_Frequent_Elements.md) | Medium | Heap, Hash Table | +| 349 | [Intersection of Two Arrays](https://leetcode.com/problems/intersection-of-two-arrays/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/349.Intersection_of_Two_Arrays.md) | Easy | Sort, Hash Table, Two Pointers, Binary Search | +| 350 | [Intersection of Two Arrays II](https://leetcode.com/problems/intersection-of-two-arrays-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/350.Intersection_of_Two_Arrays_II.md) | Easy | Sort, Hash Table, Two Pointers, Binary Search | +| 401 | [Binary Watch](https://leetcode.com/problems/binary-watch/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/401.Binary_Watch.md) | Easy | Bit Manipulation, Backtracking | +| 404 | [Sum of Left Leaves](https://leetcode.com/problems/sum-of-left-leaves/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/404.Sum_of_Left_Leaves.md) | Easy | Tree | +| 417 | [Pacific Atlantic Water Flow](https://leetcode.com/problems/pacific-atlantic-water-flow/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/417.Pacific_Atlantic_Water_Flow.md) | Medium | Depth-first Search, Breadth-first Search | +| 437 | [Path Sum III](https://leetcode.com/problems/path-sum-iii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/437.Path_Sum_III.md) | Medium | Tree | +| 438 | [Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/438.Find_All_Anagrams_in_a_String.md) | Medium | Hash Table | +| 445 | [Add Two Numbers II](https://leetcode.com/problems/add-two-numbers-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/445.Add_Two_Numbers_II.md) | Medium | Linked List | +| 447 | [Number of Boomerangs](https://leetcode.com/problems/number-of-boomerangs/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/447.Number_of_Boomerangs.md) | Medium | Hash Table, Math | +| 450 | [Delete Node in a BST](https://leetcode.com/problems/delete-node-in-a-bst/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/450.Delete_Node_in_a_BST.md) | Medium | Tree | +| 451 | [Sort Characters By Frequency](https://leetcode.com/problems/sort-characters-by-frequency/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/451.Sort_Characters_By_Frequency.md) | Medium | Heap, Hash Table | +| 454 | [4Sum II](https://leetcode.com/problems/4sum-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/454.4Sum_II.md) | Medium | Hash Table, Binary Search | +| 567 | [Permutation in String](https://leetcode.com/problems/permutation-in-string/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/567.Permutation_in_String.md) | Medium | Two Pointers, Sliding Window | \ No newline at end of file diff --git a/packages/leetcode-cli/problems.json b/packages/leetcode-cli/problems.json index f965bcdb..aef311ef 100644 --- a/packages/leetcode-cli/problems.json +++ b/packages/leetcode-cli/problems.json @@ -5,8 +5,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "1", - "code": "/**\n * @param {number[]} nums\n * @param {number} target\n * @return {number[]}\n */\nvar twoSum = function(nums, target) {\n var map = new Map()\n\n for (let i = 0; i < nums.length; i++) {\n const targetValue = target - nums[i]\n const getTargetValue = map.get(targetValue)\n if (typeof(getTargetValue) === 'number') {\n return [i, getTargetValue]\n }\n map.set(nums[i], i)\n }\n}", - "lang": "javascript" + "topicTags": "Array, Hash Table" }, { "title": "Add Two Numbers", @@ -14,8 +13,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "2", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} l1\n * @param {ListNode} l2\n * @return {ListNode}\n */\nvar addTwoNumbers = function(l1, l2) {\n let flag = 0\n let head = null,\n temp = null\n while (l1 || l2) {\n let sum = flag\n if (l1) {\n sum += l1.val\n l1 = l1.next\n }\n\n if (l2) {\n sum += l2.val\n l2 = l2.next\n }\n\n const obj = new ListNode(sum % 10)\n if (head === null) {\n head = obj\n temp = obj\n } else {\n temp.next = obj\n temp = obj\n }\n\n // 处理进位\n flag = 0\n if (sum >= 10) {\n flag = 1\n }\n }\n\n if (flag === 1) {\n const result = new ListNode(1)\n temp.next = result\n temp = result\n }\n return head\n}", - "lang": "javascript" + "topicTags": "Recursion, Linked List, Math" }, { "title": "Longest Substring Without Repeating Characters", @@ -23,8 +21,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "3", - "code": "/**\n * @param {string} s\n * @return {number}\n */\nvar lengthOfLongestSubstring = function(s) {\n let left = 0, right = 0 // [left, right] 区域\n let result = 0 // 假定结果的初始值为 0\n const cacheObj = {}\n\n while (left < s.length) {\n if (right < s.length && !cacheObj[s[right]]) {\n cacheObj[s[right]] = 1\n result = Math.max(result, right - left + 1)\n right++\n } else {\n cacheObj[s[left]] = null\n left++\n }\n }\n if (result === 0) {\n return 0\n }\n return result\n}", - "lang": "javascript" + "topicTags": "Hash Table, Two Pointers, String, Sliding Window" }, { "title": "Median of Two Sorted Arrays", @@ -32,8 +29,7 @@ "status": "ac", "difficulty": "Hard", "questionId": "4", - "code": "/**\n * @param {number[]} nums1\n * @param {number[]} nums2\n * @return {number}\n */\nvar findMedianSortedArrays = function(nums1, nums2) {\n let arr = nums1.concat(nums2).sort((r1, r2) => r1 - r2)\n const length = arr.length\n if (length % 2 === 0) {\n return (arr[length / 2 - 1] + arr[length / 2]) / 2\n } else {\n return arr[(length + 1) / 2 - 1]\n }\n};", - "lang": "javascript" + "topicTags": "Array, Binary Search, Divide and Conquer" }, { "title": "Reverse Integer", @@ -41,8 +37,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "7", - "code": "/**\n * @param {number} x\n * @return {number}\n */\nvar reverse = function(x) {\n if (x >= 0) {\n var result = Number((x).toString().split('').reverse().join(''))\n if (result > 2147483647 || result < -2147483647) {\n return 0\n } else {\n return result\n }\n } else {\n var result = Number('-'+(-x).toString().split('').reverse().join(''))\n if (result > 2147483647 || result < -2147483647) {\n return 0\n } else {\n return result\n }\n }\n};", - "lang": "javascript" + "topicTags": "Math" }, { "title": "Palindrome Number", @@ -50,8 +45,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "9", - "code": "/**\n * @param {number} x\n * @return {boolean}\n */\nvar isPalindrome = function (x) {\n const convert = x.toString().split('').reverse().join('')\n if (x === Number(convert)) {\n return true\n } else {\n return false\n }\n};", - "lang": "javascript" + "topicTags": "Math" }, { "title": "Container With Most Water", @@ -59,8 +53,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "11", - "code": "/**\n * @param {number[]} height\n * @return {number}\n */\nvar maxArea = function (height) {\n let head = 0, tail = height.length - 1, maxArea = 0\n while (head < tail) {\n result = Math.min(height[head], height[tail]) * (tail - head)\n if (result > maxArea) {\n maxArea = result\n }\n if (height[head] <= height[tail]) {\n head++\n } else {\n tail--\n }\n }\n return maxArea\n};", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "Roman to Integer", @@ -68,8 +61,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "13", - "code": "/**\n * @param {string} s\n * @return {number}\n */\nvar romanToInt = function (s) {\n const RomanArr = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n const intArr = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]\n const length = s.length\n let pick, result = 0\n for (let i = 0; i < length; i++) {\n pick = s.slice(i, i + 1)\n if (pick === 'C' || pick === 'X' || pick === 'I') {\n pick = s.slice(i, i + 2)\n if (pick === 'CM' || pick === 'CD' || pick === 'XC' || pick === 'XL' || pick === 'IX' || pick === 'IV') {\n i++\n } else {\n pick = s.slice(i, i + 1)\n }\n }\n result += intArr[RomanArr.indexOf(pick)]\n }\n return result\n};", - "lang": "javascript" + "topicTags": "Math, String" }, { "title": "Longest Common Prefix", @@ -77,8 +69,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "14", - "code": "/**\n * @param {string[]} strs\n * @return {string}\n */\nvar longestCommonPrefix = function (strs) {\n if (strs.length === 0) return ''\n\n let str = strs[0]\n\n for (let i = 0; i < strs.length; i++) {\n while (strs[i].indexOf(str) !== 0) {\n str = str.slice(0, str.length - 1)\n if (str.length === 0) { return '' }\n }\n }\n\n return str\n};", - "lang": "javascript" + "topicTags": "String" }, { "title": "3Sum", @@ -86,8 +77,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "15", - "code": "/**\n * @param {number[]} nums\n * @return {number[][]}\n */\nvar threeSum = function (nums) {\n const sortNums = nums.sort((r1, r2) => r1 - r2)\n let targetValue\n const result = []\n\n for (let i = 0; i < sortNums.length - 2; i++) {\n // 针对下标 i 对应的值进行去重\n if (i === 0 || nums[i] > nums[i - 1]) {\n targetValue = -sortNums[i]\n let l = i + 1\n let r = sortNums.length - 1\n\n while (l < r) {\n let tmpArr = []\n if (sortNums[l] + sortNums[r] === targetValue) {\n tmpArr.push(-targetValue)\n tmpArr.push(sortNums[l])\n tmpArr.push(sortNums[r])\n result.push(tmpArr)\n l++\n r--\n // 针对下标 l 对应的值进行去重, r 同理\n while (l < r && sortNums[l] === sortNums[l - 1]) {\n l++\n }\n while (l < r && sortNums[r] === sortNums[r + 1]) {\n r--\n }\n } else if (sortNums[l] + sortNums[r] > targetValue) {\n r--\n } else if (sortNums[l] + sortNums[r] < targetValue) {\n l++\n }\n }\n }\n }\n\n return result\n}", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "3Sum Closest", @@ -95,8 +85,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "16", - "code": "/**\n * @param {number[]} nums\n * @param {number} target\n * @return {number}\n */\nvar threeSumClosest = function (nums, target) {\n let sum = 0\n let close = nums[0] + nums[1] + nums[2]\n let sortedNums = nums.sort((a, b) => a - b)\n\n for (let i = 0; i < sortedNums.length; i++) {\n let l = i + 1, r = sortedNums.length - 1\n while (l < r) {\n sum = nums[i] + nums[l] + nums[r] // 分别对应左、中、右\n if (Math.abs(sum - target) < Math.abs(close - target)) {\n close = sum\n }\n\n if (sum < target) {\n l++\n } else if (sum > target) {\n r--\n } else {\n return sum\n }\n\n }\n\n }\n\n return close\n}", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "Letter Combinations of a Phone Number", @@ -104,8 +93,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "17", - "code": "/**\n * @param {string} digits\n * @return {string[]}\n */\nvar letterCombinations = function (digits) { // '23'\n const keyString = [\n '',\n '',\n 'abc',\n 'def',\n 'ghi',\n 'jkl',\n 'mno',\n 'pqrs',\n 'tuv',\n 'wxyz',\n ]\n\n if (digits === '' || digits.length === 0) {\n return []\n }\n\n const result = ['']\n\n for (let x of digits) {\n const size = result.length\n for (let i = 0; i < size; i++) {\n const old = result.shift()\n\n for (let y of keyString[x]) {\n result.push(old + y)\n }\n }\n }\n return result\n};", - "lang": "javascript" + "topicTags": "Depth-first Search, Recursion, String, Backtracking" }, { "title": "4Sum", @@ -113,8 +101,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "18", - "code": "var fourSum = function(nums, target) {\n const result = []\n if (nums.length < 4) return result\n const sortSum = nums.sort((n1, n2) => n1 - n2)\n const length = sortSum.length\n debugger\n for (let i = 0; i < length - 3; i++) {\n if (i === 0 || nums[i] > nums[i - 1]) {\n let l = i + 1\n let m = l + 1\n\n while (l < length - 2) {\n let r = length - 1\n if (l === i + 1 || nums[l] > nums[l - 1]) {\n while (m < length - 1 && m < r) {\n let tmpArr = []\n const sum = nums[i] + nums[l] + nums[m] + nums[r]\n if (sum === target) {\n tmpArr.push(nums[i])\n tmpArr.push(nums[l])\n tmpArr.push(nums[m])\n tmpArr.push(nums[r])\n result.push(tmpArr)\n m++\n r--\n while (nums[m] === nums[m - 1]) {\n m++\n }\n while (nums[r] === nums[r + 1]) {\n r--\n }\n } else if (sum < target) {\n m++\n } else if (sum > target) {\n r--\n }\n }\n }\n l++\n m = l + 1\n }\n }\n }\n return result\n}", - "lang": "javascript" + "topicTags": "Array, Hash Table, Two Pointers" }, { "title": "Remove Nth Node From End of List", @@ -122,8 +109,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "19", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @param {number} n\n * @return {ListNode}\n */\nvar removeNthFromEnd = function(head, n) {\n const dummy = new ListNode(0)\n dummy.next = head\n let l = dummy\n let r = dummy\n let offset = n + 1\n\n while (offset--) {\n r = r.next\n if (offset > 1 && r === null) {\n return dummy.next\n }\n }\n\n while (r) {\n r = r.next\n l = l.next\n }\n\n l.next = l.next.next\n\n return dummy.next\n}", - "lang": "javascript" + "topicTags": "Linked List, Two Pointers" }, { "title": "Valid Parentheses", @@ -131,8 +117,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "20", - "code": "/**\n * @param {string} s\n * @return {boolean}\n */\nvar isValid = function (s) {\n const obj = {\n '(': ')',\n '{': '}',\n '[': ']',\n }\n const cacheArr = []\n for (let i = 0; i < s.length; i++) {\n if (Object.keys(obj).includes(s[i])) {\n cacheArr.push(s[i])\n } else {\n const pick = cacheArr.pop()\n if (obj[pick] !== s[i]) {\n return false\n }\n }\n }\n\n return cacheArr.length === 0\n};", - "lang": "javascript" + "topicTags": "Stack, String" }, { "title": "Merge Two Sorted Lists", @@ -140,8 +125,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "21", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} l1\n * @param {ListNode} l2\n * @return {ListNode}\n */\nvar mergeTwoLists = function (l1, l2) {\n const dummyLink = new ListNode(0)\n let cur = dummyLink\n let l1Point = l1\n let l2Point = l2\n\n while (l1Point && l2Point) {\n if (l1Point.val < l2Point.val) {\n cur.next = l1Point\n l1Point = l1Point.next\n } else {\n cur.next = l2Point\n l2Point = l2Point.next\n }\n cur = cur.next\n }\n\n while (l1Point) {\n cur.next = l1Point\n cur = cur.next\n l1Point = l1Point.next\n }\n\n while (l2Point) {\n cur.next = l2Point\n cur = cur.next\n l2Point = l2Point.next\n }\n\n return dummyLink.next\n}", - "lang": "javascript" + "topicTags": "Recursion, Linked List" }, { "title": "Generate Parentheses", @@ -149,8 +133,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "22", - "code": "/**\n * @param {number} n\n * @return {string[]}\n */\nvar generateParenthesis = function (n) {\n const result = []\n let str = ''\n function judege(left, right, str) {\n if (left === 0 && right === 0) {\n result.push(str)\n str = ''\n return\n }\n\n if (left === right) {\n judege(left - 1, right, str + '(')\n } else if (left === 0) {\n judege(left, right - 1, str + ')')\n } else {\n judege(left - 1, right, str + '(')\n judege(left, right - 1, str + ')')\n }\n }\n\n judege(n, n, str)\n return result\n};", - "lang": "javascript" + "topicTags": "String, Backtracking" }, { "title": "Merge k Sorted Lists", @@ -158,8 +141,7 @@ "status": "ac", "difficulty": "Hard", "questionId": "23", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode[]} lists\n * @return {ListNode}\n */\nvar mergeKLists = function(lists) {\n let result = lists[0] || null\n\n for (let i = 1; i < lists.length; i++) {\n const compareList = lists[i]\n result = mergeTwoLists(result, compareList)\n }\n return result\n}\n\nvar mergeTwoLists = function(curList, compareList) {\n const dummyNode = new ListNode(0)\n dummyNode.next = curList\n let cur = dummyNode\n let comparedCur = compareList\n\n while (cur.next && comparedCur) {\n if (cur.next.val > comparedCur.val) {\n let nextComparedCur = comparedCur.next\n comparedCur.next = cur.next\n cur.next = comparedCur\n comparedCur = nextComparedCur\n }\n cur = cur.next\n }\n if (comparedCur) {\n cur.next = comparedCur\n }\n\n return dummyNode.next\n}", - "lang": "javascript" + "topicTags": "Heap, Linked List, Divide and Conquer" }, { "title": "Swap Nodes in Pairs", @@ -167,8 +149,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "24", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @return {ListNode}\n */\nvar swapPairs = function(head) {\n const dummyHead = new ListNode(0)\n dummyHead.next = head\n\n let prev = dummyHead\n let first = prev.next\n\n while(first && first.next) {\n let second = first.next\n let next = second.next\n\n second.next = first\n first.next = next\n prev.next = second\n\n prev = first\n first = first.next\n }\n\n return dummyHead.next\n}", - "lang": "javascript" + "topicTags": "Recursion, Linked List" }, { "title": "Reverse Nodes in k-Group", @@ -176,8 +157,7 @@ "status": "ac", "difficulty": "Hard", "questionId": "25", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @param {number} k\n * @return {ListNode}\n */\nvar reverseKGroup = function(head, k) {\n const dummyHead = new ListNode(0)\n dummyHead.next = head\n let prev = dummyHead\n let tail = dummyHead\n\n while (true) {\n let count = 0\n while (tail.next && count !== k) {\n tail = tail.next\n count++\n }\n if (count !== k) break\n\n let head1 = prev.next\n\n while (prev.next !== tail) {\n let cur = prev.next\n prev.next = cur.next\n cur.next = tail.next\n tail.next = cur\n }\n\n prev = head1\n tail = head1\n }\n\n return dummyHead.next\n}", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Remove Duplicates from Sorted Array", @@ -185,8 +165,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "26", - "code": "/**\n * @param {number[]} nums\n * @return {number}\n */\nvar removeDuplicates = function (nums) {\n if (nums.length <= 1) return nums.length\n let cur = 0 // 新数组的下标\n for (let i = 1; i < nums.length; i++) {\n if (nums[i] !== nums[cur]) {\n nums[cur + 1] = nums[i]\n cur++\n }\n }\n return cur + 1\n}", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "Remove Element", @@ -194,8 +173,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "27", - "code": "/**\n * @param {number[]} nums\n * @param {number} val\n * @return {number}\n */\nvar removeElement = function (nums, val) {\n let cur = 0\n\n for (let i = 0; i < nums.length; i++) {\n if (nums[i] !== val) {\n nums[cur] = nums[i]\n cur++\n }\n }\n return cur\n}", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "Implement strStr()", @@ -203,8 +181,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "28", - "code": "/**\n * @param {string} haystack\n * @param {string} needle\n * @return {number}\n */\nvar strStr = function (haystack, needle) {\n return haystack.indexOf(needle)\n};", - "lang": "javascript" + "topicTags": "Two Pointers, String" }, { "title": "Search in Rotated Sorted Array", @@ -212,8 +189,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "33", - "code": "/**\n * @param {number[]} nums\n * @param {number} target\n * @return {number}\n */\nvar search = function (nums, target) {\n return nums.indexOf(target)\n};", - "lang": "javascript" + "topicTags": "Array, Binary Search" }, { "title": "Search Insert Position", @@ -221,8 +197,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "35", - "code": "/**\n * @param {number[]} nums\n * @param {number} target\n * @return {number}\n */\nvar searchInsert = function (nums, target) {\n let i = 0\n while (i < nums.length) {\n if (target <= nums[i]) {\n return i\n } \n \n if (target > nums[nums.length - 1]) {\n return nums.length\n }\n i++\n }\n};", - "lang": "javascript" + "topicTags": "Array, Binary Search" }, { "title": "Valid Sudoku", @@ -230,8 +205,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "36", - "code": "/**\n * @param {character[][]} board\n * @return {boolean}\n */\nvar isValidSudoku = function (board) {\n const set = new Set()\n for (let x = 0; x < 9; x++) {\n for (let y = 0; y < 9; y++) {\n const num = board[x][y]\n if (num !== '.') {\n if (set.has(`row ${x} ${num}`)\n || set.has(`col ${y} ${num}`)\n || set.has(`block ${Math.floor(x / 3)} ${Math.floor(y / 3)} ${num}`)\n ) {\n return false\n } else {\n set.add(`row ${x} ${num}`)\n set.add(`col ${y} ${num}`)\n set.add(`block ${Math.floor(x / 3)} ${Math.floor(y / 3)} ${num}`)\n }\n }\n }\n }\n return true\n};", - "lang": "javascript" + "topicTags": "Hash Table" + }, + { + "title": "Sudoku Solver", + "titleSlug": "sudoku-solver", + "status": "ac", + "difficulty": "Hard", + "questionId": "37", + "topicTags": "Hash Table, Backtracking" }, { "title": "Count and Say", @@ -239,8 +221,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "38", - "code": "const cacheObj = {1: '1'}\n/**\n * @param {number} n\n * @return {string}\n */\nvar countAndSay = function (n) {\n if (cacheObj[n]) {\n return cacheObj[n]\n } else {\n const findValue = countAndSay(n - 1)\n let str = ''\n let tmp = 0\n for (let i = 0; i < findValue.length; i++) {\n if (findValue[i] !== findValue[i + 1]) {\n str += i - tmp + 1\n str += findValue[i]\n tmp = i + 1\n }\n }\n cacheObj[n] = str\n return str\n }\n};", - "lang": "javascript" + "topicTags": "String" }, { "title": "Combination Sum", @@ -248,8 +229,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "39", - "code": "/**\n * @param {number[]} candidates\n * @param {number} target\n * @return {number[][]}\n */\nvar combinationSum = function (candidates, target) {\n const result = []\n\n const DFS = function (sum, arr, start) {\n if (sum === target) {\n result.push(arr.slice())\n return\n }\n if (sum > target) {\n return\n }\n\n for (let i = start; i < candidates.length; i++) {\n sum += candidates[i]\n arr.push(candidates[i])\n DFS(sum, arr, i)\n arr.pop(candidates[i])\n sum -= candidates[i]\n }\n }\n\n DFS(0, [], 0, candidates)\n\n return result\n};", - "lang": "javascript" + "topicTags": "Array, Backtracking" }, { "title": "Combination Sum II", @@ -257,8 +237,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "40", - "code": "/**\n * @param {number[]} candidates\n * @param {number} target\n * @return {number[][]}\n */\nvar combinationSum2 = function (candidates, target) {\n const result = []\n\n const sortCandidates = candidates.sort((r1, r2) => r1 - r2)\n const DFS = function (sum, arr, start) {\n if (sum === target) {\n result.push(arr.slice())\n return\n }\n if (sum > target) {\n return\n }\n\n for (let i = start; i < sortCandidates.length; i++) {\n if (i !== start && sortCandidates[i] === sortCandidates[i - 1]) { // [1,1,2], 3 避免产生两个 [1, 2]\n continue\n }\n\n sum += sortCandidates[i]\n arr.push(sortCandidates[i])\n DFS(sum, arr, i + 1)\n arr.pop(sortCandidates[i])\n sum -= sortCandidates[i]\n }\n }\n\n DFS(0, [], 0)\n\n return result\n};", - "lang": "javascript" + "topicTags": "Array, Backtracking" }, { "title": "Permutations", @@ -266,8 +245,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "46", - "code": "/**\n * @param {number[]} nums\n * @return {number[][]}\n */\nvar permute = function (nums) {\n const result = []\n const DFS = function(arr) {\n if (arr.length === nums.length) {\n result.push(arr.slice())\n return\n }\n\n for (let i = 0; i < nums.length; i++) {\n if (!arr.includes(nums[i])) {\n arr.push(nums[i])\n DFS(arr)\n arr.pop(nums[i])\n }\n }\n }\n\n DFS([])\n\n return result\n};", - "lang": "javascript" + "topicTags": "Backtracking" }, { "title": "Permutations II", @@ -275,8 +253,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "47", - "code": "/**\n * @param {number[]} nums\n * @return {number[][]}\n */\nvar permuteUnique = function (nums) {\n const result = []\n const sortNum = nums.sort()\n const used = new Array(nums.length).fill(false)\n const DFS = function (arr) {\n if (arr.length === sortNum.length) {\n result.push(arr.slice())\n return\n }\n\n for (let i = 0; i < sortNum.length; i++) {\n if (i > 0 && sortNum[i] === sortNum[i - 1] && !used[i - 1]) {\n continue\n }\n\n if (!used[i]) {\n arr.push(sortNum[i])\n used[i] = true\n DFS(arr)\n arr.pop(sortNum[i])\n used[i] = false\n }\n }\n }\n\n DFS([])\n\n return result\n};", - "lang": "javascript" + "topicTags": "Backtracking" }, { "title": "Rotate Image", @@ -284,8 +261,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "48", - "code": "/**\n * @param {number[][]} matrix\n * @return {void} Do not return anything, modify matrix in-place instead.\n */\nvar rotate = function (matrix) {\n matrix.reverse()\n\n let tmp\n for (let x = 0; x < matrix.length; x++) {\n for (let y = 0; y < x; y++) {\n tmp = matrix[x][y]\n matrix[x][y] = matrix[y][x]\n matrix[y][x] = tmp\n }\n }\n\n console.log(matrix)\n};", - "lang": "javascript" + "topicTags": "Array" }, { "title": "Group Anagrams", @@ -293,8 +269,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "49", - "code": "/**\n * @param {string[]} strs\n * @return {string[][]}\n */\nvar groupAnagrams = function (strs) {\n const tmpObj = {}\n\n for (let i = 0; i < strs.length; i++) {\n const sortStr = strs[i].split('').sort().join('')\n if (tmpObj[sortStr]) {\n tmpObj[sortStr].push(strs[i])\n } else {\n tmpObj[sortStr] = [strs[i]]\n }\n }\n\n const result = []\n\n const keyArr = Object.keys(tmpObj)\n for (let i = 0; i < keyArr.length; i++) {\n result.push(tmpObj[keyArr[i]])\n }\n\n return result\n}", - "lang": "javascript" + "topicTags": "Hash Table, String" }, { "title": "Pow(x, n)", @@ -302,8 +277,23 @@ "status": "ac", "difficulty": "Medium", "questionId": "50", - "code": "/**\n * @param {number} x\n * @param {number} n\n * @return {number}\n */\nvar myPow = function (x, n) {\n return Math.pow(x, n)\n};", - "lang": "javascript" + "topicTags": "Math, Binary Search" + }, + { + "title": "N-Queens", + "titleSlug": "n-queens", + "status": "ac", + "difficulty": "Hard", + "questionId": "51", + "topicTags": "Backtracking" + }, + { + "title": "N-Queens II", + "titleSlug": "n-queens-ii", + "status": "ac", + "difficulty": "Hard", + "questionId": "52", + "topicTags": "Backtracking" }, { "title": "Rotate List", @@ -311,8 +301,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "61", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @param {number} k\n * @return {ListNode}\n */\nvar rotateRight = function(head, k) {\n const dummy = new ListNode(0)\n dummy.next = head\n let count = 0\n let last = dummy\n while (last.next) {\n last = last.next\n count++\n }\n\n if (count === 0 || count === k) return dummy.next\n const modK = k % count\n let diff = modK + 1\n\n let l = dummy\n let r = dummy\n while (diff--) {\n r = r.next\n }\n\n while (r) {\n r = r.next\n l = l.next\n }\n\n last.next = dummy.next\n dummy.next = l.next\n l.next = null\n\n return dummy.next\n}", - "lang": "javascript" + "topicTags": "Linked List, Two Pointers" }, { "title": "Unique Paths", @@ -320,8 +309,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "62", - "code": "const cache = {}\n/**\n * @param {number} m\n * @param {number} n\n * @return {number}\n */\nvar uniquePaths = function (m, n) {\n if (m === 1 || n === 1) {\n return 1\n }\n\n if (cache[`${m}~${n}`]) {\n return cache[`${m}~${n}`]\n } else {\n const nums = uniquePaths(m - 1, n) + uniquePaths(m, n - 1)\n cache[`${m}~${n}`] = nums\n\n return nums\n }\n};", - "lang": "javascript" + "topicTags": "Array, Dynamic Programming" }, { "title": "Minimum Path Sum", @@ -329,8 +317,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "64", - "code": "/**\n * @param {number[][]} grid\n * @return {number}\n */\nvar minPathSum = function (grid) {\n const m = grid.length\n const n = grid[0].length\n const cache = {}\n return findMinCount(m - 1, n - 1, grid, cache)\n}\n\nfunction findMinCount(x, y, grid, cache) {\n if (cache[`${x}~${y}`]) {\n if (x === 17) {\n var test = null\n }\n return cache[`${x}~${y}`]\n }\n\n let count = 0\n\n if (x === 0 && y === 0) {\n count = grid[0][0]\n } else if (x === 0) {\n count = findMinCount(0, y - 1, grid, cache) + grid[0][y]\n } else if (y === 0) {\n count = findMinCount(x - 1, y, grid, cache) + grid[x][0]\n }\n\n if (x > 0 && y > 0) {\n count = Math.min(findMinCount(x - 1, y, grid, cache), findMinCount(x, y - 1, grid, cache)) + grid[x][y]\n }\n\n cache[`${x}~${y}`] = count\n\n return count\n}", - "lang": "javascript" + "topicTags": "Array, Dynamic Programming" }, { "title": "Plus One", @@ -338,8 +325,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "66", - "code": "/**\n * @param {number[]} digits\n * @return {number[]}\n */\nvar plusOne = function (digits) {\n let length = digits.length\n let tag = 0\n while (length) {\n if (length === digits.length) {\n if (digits[length - 1] + 1 + tag >= 10) {\n digits[length - 1] = 0\n tag = 1\n } else {\n digits[length - 1] = digits[length - 1] + 1\n tag = 0\n break\n }\n } else {\n if (digits[length - 1] + tag >= 10) {\n digits[length - 1] = 0\n tag = 1\n } else {\n digits[length - 1] = digits[length - 1] + 1\n tag = 0\n break\n }\n }\n length--\n }\n if (tag === 1) {\n digits.unshift(1)\n }\n return digits\n};", - "lang": "javascript" + "topicTags": "Array" }, { "title": "Add Binary", @@ -347,8 +333,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "67", - "code": "/**\n * @param {string} a\n * @param {string} b\n * @return {string}\n */\nvar addBinary = function (a, b) {\n const al = a.length, bl = b.length\n const length = Math.max(al, bl)\n let tag = 0\n let str = ''\n\n for (let i = 0; i < length; i++) {\n const x = i < al ? +a[al - i - 1] : 0\n const y = i < bl ? +b[bl - i - 1] : 0\n\n const addValue = ((x + y + tag === 1) || (x + y + tag === 3)) ? '1' : '0'\n str += addValue\n\n if (x + y + tag > 1) {\n tag = 1\n } else {\n tag = 0\n }\n }\n\n if (tag === 1) {\n str += '1'\n }\n\n return str.split('').reverse().join('')\n};", - "lang": "javascript" + "topicTags": "Math, String" }, { "title": "Sqrt(x)", @@ -356,8 +341,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "69", - "code": "/**\n * @param {number} x\n * @return {number}\n */\nvar mySqrt = function (x) {\n return +Math.sqrt(x).toString().split('.')[0]\n};", - "lang": "javascript" + "topicTags": "Math, Binary Search" }, { "title": "Climbing Stairs", @@ -365,8 +349,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "70", - "code": "const obj = {}\n\n/**\n * @param {number} n\n * @return {number}\n */\nvar climbStairs = function (n) {\n if (n === 1) { return 1 }\n if (n === 2) { return 2 }\n\n if (obj[n]) {\n return obj[n]\n } else {\n obj[n] = climbStairs(n - 1) + climbStairs(n - 2)\n return obj[n]\n }\n};", - "lang": "javascript" + "topicTags": "Dynamic Programming" }, { "title": "Simplify Path", @@ -374,8 +357,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "71", - "code": "/**\n * @param {string} path\n * @return {string}\n */\nvar simplifyPath = function(path) {\n const pathArr = path.split('/')\n const stack = []\n for (let i = 0; i < pathArr.length; i++) {\n if (pathArr[i] === '..') {\n stack.pop()\n } else if (pathArr[i] === '.' || pathArr[i] === '') {\n continue\n } else {\n stack.push(pathArr[i])\n }\n }\n\n return `/${stack.join('/')}`\n}", - "lang": "javascript" + "topicTags": "Stack, String" }, { "title": "Sort Colors", @@ -383,8 +365,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "75", - "code": "/**\n * @param {number[]} nums\n * @return {void} Do not return anything, modify nums in-place instead.\n */\nvar sortColors = function (nums) {\n let countObj = {}\n for (let i = 0; i < nums.length; i++) {\n const key = nums[i]\n if (typeof(countObj[`${key}`]) === 'number') {\n countObj[`${key}`] = countObj[`${key}`] + 1\n } else {\n countObj[`${key}`] = 1\n }\n }\n\n const count0 = countObj[0] || 0\n const count1 = countObj[1] || 0\n const count2 = countObj[2] || 0\n for (let i = 0; i < count0 + count1 + count2; i++) {\n if (i < count0) {\n nums[i] = 0\n } else if (i >=count0 && i < count0 + count1) {\n nums[i] = 1\n } else if (i >= count1 && i < count0 + count1 + count2) {\n nums[i] = 2\n }\n }\n}", - "lang": "javascript" + "topicTags": "Sort, Array, Two Pointers" + }, + { + "title": "Combinations", + "titleSlug": "combinations", + "status": "ac", + "difficulty": "Medium", + "questionId": "77", + "topicTags": "Backtracking" }, { "title": "Subsets", @@ -392,8 +381,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "78", - "code": "/**\n * @param {number[]} nums\n * @return {number[][]}\n */\nvar subsets = function (nums) {\n const list = []\n const tmpList = []\n\n backTrack(list, tmpList, nums, 0)\n\n return list\n};\n\nfunction backTrack(list, tmpList, nums, start) {\n list.push(tmpList.slice())\n\n for (let i = start; i < nums.length; i++) {\n tmpList.push(nums[i])\n backTrack(list, tmpList, nums, i + 1)\n tmpList.splice(tmpList.length - 1, 1)\n }\n}", - "lang": "javascript" + "topicTags": "Bit Manipulation, Array, Backtracking" + }, + { + "title": "Word Search", + "titleSlug": "word-search", + "status": "ac", + "difficulty": "Medium", + "questionId": "79", + "topicTags": "Array, Backtracking" }, { "title": "Remove Duplicates from Sorted Array II", @@ -401,8 +397,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "80", - "code": "/**\n * @param {number[]} nums\n * @return {number}\n */\nvar removeDuplicates = function(nums) {\n if (nums.length <= 2) return nums.length\n let cur = 1 // 新数组的下标位数\n for (let i = 2; i < nums.length; i++) {\n // 对题目中每个元素最多出现两次的条件作限制\n if (nums[i] !== nums[cur - 1]) {\n nums[cur + 1] = nums[i]\n cur++\n }\n }\n return cur + 1\n}", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "Remove Duplicates from Sorted List II", @@ -410,8 +405,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "82", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @return {ListNode}\n */\nvar deleteDuplicates = function(head) {\n const dummyHead = new ListNode(0)\n dummyHead.next = head\n\n let slowPoint = dummyHead\n\n while(slowPoint.next) {\n let cur = slowPoint.next\n let quickPoint = cur\n while(quickPoint.next && quickPoint.next.val === cur.val) {\n quickPoint = quickPoint.next\n }\n\n if (cur === quickPoint) {\n slowPoint = slowPoint.next\n } else {\n slowPoint.next = quickPoint.next\n }\n }\n\n return dummyHead.next\n}", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Remove Duplicates from Sorted List", @@ -419,8 +413,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "83", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @return {ListNode}\n */\nvar deleteDuplicates = function(head) {\n const listNode = new ListNode(0)\n listNode.next = head\n let cur = listNode.next\n while (cur) {\n let next = cur.next\n while (next && next.val === cur.val) {\n next = next.next\n }\n cur.next = next\n cur = cur.next\n }\n return listNode.next\n}", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Partition List", @@ -428,8 +421,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "86", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @param {number} x\n * @return {ListNode}\n */\nvar partition = function(head, x) {\n const listNode = new ListNode(0)\n listNode.next = head\n\n const smallerThanX = new ListNode(0)\n const biggerThanX = new ListNode(0)\n\n let cur = listNode.next\n let smallPoint = smallerThanX\n let bigPoint = biggerThanX\n while (cur) {\n if (cur.val < x) {\n smallPoint.next = cur\n smallPoint = smallPoint.next\n } else {\n bigPoint.next = cur\n bigPoint = bigPoint.next\n }\n\n cur = cur.next\n }\n\n bigPoint.next = null\n smallPoint.next = biggerThanX.next\n\n return smallerThanX.next\n}", - "lang": "javascript" + "topicTags": "Linked List, Two Pointers" }, { "title": "Merge Sorted Array", @@ -437,8 +429,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "88", - "code": "/**\n * @param {number[]} nums1\n * @param {number} m\n * @param {number[]} nums2\n * @param {number} n\n * @return {void} Do not return anything, modify nums1 in-place instead.\n */\nvar merge = function(nums1, m, nums2, n) {\n let l = 0 // 第一个数组下标\n let r = 0 // 第二个数组下标\n const arr = []\n\n while (l < m && r < n) {\n if (nums1[l] <= nums2[r]) {\n arr.push(nums1[l])\n l++\n } else if (nums1[l] > nums2[r]) {\n arr.push(nums2[r])\n r++\n }\n }\n\n while (l < m) {\n arr.push(nums1[l])\n l++\n }\n\n while (r < n) {\n arr.push(nums2[r])\n r++\n }\n\n for (let i = 0; i < m + n; i++) {\n nums1[i] = arr[i]\n }\n}", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "Gray Code", @@ -446,8 +437,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "89", - "code": "/**\n * @param {number} n\n * @return {number[]}\n */\nvar grayCode = function (n) {\n const arr = new Array()\n arr[0] = [0]\n for (let i = 1; i <= n; i++) {\n const newArr = arr[i - 1].slice().reverse().map(r => r + Math.pow(2, i - 1))\n arr[i] = [...arr[i - 1], ...newArr]\n }\n return arr[n]\n}", - "lang": "javascript" + "topicTags": "Backtracking" + }, + { + "title": "Subsets II", + "titleSlug": "subsets-ii", + "status": "ac", + "difficulty": "Medium", + "questionId": "90", + "topicTags": "Array, Backtracking" }, { "title": "Reverse Linked List II", @@ -455,8 +453,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "92", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @param {number} m\n * @param {number} n\n * @return {ListNode}\n */\nvar reverseBetween = function(head, m, n) {\n const originList = new ListNode(0)\n originList.next = head\n\n let listNode = originList\n\n for (let i = 0; i < m - 1; i++) {\n listNode = listNode.next\n }\n\n let prev = null\n let cur = listNode.next\n\n for (let i = 0; i < n - m + 1; i++) {\n let next = cur.next\n\n cur.next = prev\n prev = cur\n cur = next\n }\n\n listNode.next.next = cur\n listNode.next = prev\n return originList.next\n}", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Restore IP Addresses", @@ -464,8 +461,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "93", - "code": "/**\n * @param {string} s\n * @return {string[]}\n */\nvar restoreIpAddresses = function (s) {\n const arr = []\n for (let i = 1; i < 4; i++) {\n for (let j = i + 1; j < i + 5; j++) {\n for (let z = j + 1; z < j + 5; z++) {\n const a = s.slice(0, i)\n const b = s.slice(i, j)\n const c = s.slice(j, z)\n const d = s.slice(z, s.length)\n if (validate(a) && validate(b) && validate(c) && validate(d)) {\n arr.push(`${a}.${b}.${c}.${d}`)\n }\n }\n }\n }\n return arr\n};\n\nvar validate = function (value) {\n if (value.length > 3 || value.length === 0 || +value > 255 || (value[0] === '0' && value.length > 1)) {\n return false\n }\n return true\n}", - "lang": "javascript" + "topicTags": "String, Backtracking" }, { "title": "Binary Tree Inorder Traversal", @@ -473,8 +469,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "94", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {number[]}\n */\nvar inorderTraversal = function(root) {\n const printArr = []\n if (!root) return printArr\n const stack = []\n stack.push({\n color: 'white',\n node: root\n })\n\n while (stack.length > 0) {\n const pickValue = stack.pop()\n const { color, node } = pickValue\n if (color === 'gray') {\n printArr.push(node.val)\n } else {\n node.right && stack.push({ color: 'white', node: node.right })\n stack.push({ color: 'gray', node })\n node.left && stack.push({ color: 'white', node: node.left })\n }\n }\n\n return printArr\n}", - "lang": "javascript" + "topicTags": "Stack, Tree, Hash Table" + }, + { + "title": "Validate Binary Search Tree", + "titleSlug": "validate-binary-search-tree", + "status": "ac", + "difficulty": "Medium", + "questionId": "98", + "topicTags": "Tree, Depth-first Search, Recursion" }, { "title": "Same Tree", @@ -482,8 +485,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "100", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} p\n * @param {TreeNode} q\n * @return {boolean}\n */\nvar isSameTree = function (p, q) {\n if (p === null && q === null) {\n return true\n } else if (p === null || q === null) {\n return false\n } \n \n if (p.val === q.val) {\n return isSameTree(p.left, q.left) && isSameTree(p.right, q.right)\n } else {\n return false\n }\n};\n", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search" }, { "title": "Symmetric Tree", @@ -491,8 +493,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "101", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {boolean}\n */\nvar isSymmetric = function (root) {\n if (!root) return true\n if (!root.left && !root.right) return true\n if (root.left && root.right && root.left.val !== root.right.val) return false\n\n const stack = []\n\n stack.push(root.right)\n stack.push(root.left)\n\n while (stack.length > 0) {\n const popItemLeft = stack.pop()\n const popItemRight = stack.pop()\n\n if (!popItemLeft && !popItemRight) continue\n if (!popItemLeft || !popItemRight || popItemLeft.val !== popItemRight.val) return false\n\n stack.push(popItemRight.right, popItemLeft.left, popItemRight.left, popItemLeft.right)\n }\n\n return true\n};", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search, Breadth-first Search" }, { "title": "Binary Tree Level Order Traversal", @@ -500,8 +501,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "102", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {number[][]}\n */\nvar levelOrder = function(root) {\n const printArr = []\n if (!root) return printArr\n const list = []\n list.push({ node: root, level: 0 })\n while (list.length > 0) {\n const { node, level } = list.shift()\n if (!printArr[level]) {\n printArr[level] = []\n }\n printArr[level].push(node.val)\n node.left && list.push({ node: node.left, level: level + 1 })\n node.right && list.push({ node: node.right, level: level + 1 })\n }\n return printArr\n}", - "lang": "javascript" + "topicTags": "Tree, Breadth-first Search" }, { "title": "Binary Tree Zigzag Level Order Traversal", @@ -509,8 +509,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "103", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {number[][]}\n */\nvar zigzagLevelOrder = function(root) {\n const printArr = []\n if (!root) return printArr\n const list = []\n list.push({ level: 0, node: root })\n while(list.length > 0) {\n const { level, node } = list.shift()\n if (!printArr[level]) {\n printArr[level] = []\n }\n\n if (level % 2 === 0) {\n printArr[level].push(node.val)\n } else {\n printArr[level].unshift(node.val)\n }\n\n node.left && list.push({ level: level + 1, node: node.left })\n node.right && list.push({ level: level + 1, node: node.right })\n }\n\n return printArr\n}", - "lang": "javascript" + "topicTags": "Stack, Tree, Breadth-first Search" }, { "title": "Maximum Depth of Binary Tree", @@ -518,17 +517,23 @@ "status": "ac", "difficulty": "Easy", "questionId": "104", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {number}\n */\nvar maxDepth = function (root) {\n return root === null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1\n};\n\n", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search, Recursion" }, { "title": "Binary Tree Level Order Traversal II", "titleSlug": "binary-tree-level-order-traversal-ii", "status": "ac", - "difficulty": "Easy", + "difficulty": "Medium", "questionId": "107", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {number[][]}\n */\nvar levelOrderBottom = function(root) {\n const printArr = []\n if (!root) return printArr\n const list = []\n list.push({ node: root, level: 0 })\n while (list.length > 0) {\n const { node, level } = list.shift()\n if (!printArr[level]) {\n printArr.unshift([])\n }\n printArr[0].push(node.val)\n node.left && (list.push({ node: node.left, level: level + 1 }))\n node.right && (list.push({ node: node.right, level: level + 1 }))\n }\n return printArr\n}", - "lang": "javascript" + "topicTags": "Tree, Breadth-first Search" + }, + { + "title": "Convert Sorted Array to Binary Search Tree", + "titleSlug": "convert-sorted-array-to-binary-search-tree", + "status": "ac", + "difficulty": "Easy", + "questionId": "108", + "topicTags": "Tree, Depth-first Search" }, { "title": "Balanced Binary Tree", @@ -536,8 +541,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "110", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {boolean}\n */\nvar isBalanced = function(root) {\n return deep(root) === -1 ? false : true\n};\n\nvar deep = (node) => {\n if (!node) return 0\n const leftNode = deep(node.left)\n if (leftNode === -1) return -1\n const rightNode = deep(node.right)\n if (rightNode === -1) return -1\n return Math.abs(leftNode - rightNode) <= 1 ? Math.max(leftNode, rightNode) + 1 : -1\n}", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search, Recursion" }, { "title": "Minimum Depth of Binary Tree", @@ -545,7 +549,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "111", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search, Breadth-first Search" }, { "title": "Path Sum", @@ -553,7 +557,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "112", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search" }, { "title": "Path Sum II", @@ -561,7 +565,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "113", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search" + }, + { + "title": "Triangle", + "titleSlug": "triangle", + "status": "ac", + "difficulty": "Medium", + "questionId": "120", + "topicTags": "Array, Dynamic Programming" }, { "title": "Best Time to Buy and Sell Stock", @@ -569,7 +581,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "121", - "lang": "javascript" + "topicTags": "Array, Dynamic Programming" }, { "title": "Valid Palindrome", @@ -577,15 +589,15 @@ "status": "ac", "difficulty": "Easy", "questionId": "125", - "lang": "javascript" + "topicTags": "Two Pointers, String" }, { "title": "Word Ladder", "titleSlug": "word-ladder", "status": "ac", - "difficulty": "Medium", + "difficulty": "Hard", "questionId": "127", - "lang": "javascript" + "topicTags": "Breadth-first Search" }, { "title": "Sum Root to Leaf Numbers", @@ -593,7 +605,23 @@ "status": "ac", "difficulty": "Medium", "questionId": "129", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search" + }, + { + "title": "Surrounded Regions", + "titleSlug": "surrounded-regions", + "status": "ac", + "difficulty": "Medium", + "questionId": "130", + "topicTags": "Depth-first Search, Breadth-first Search, Union Find" + }, + { + "title": "Palindrome Partitioning", + "titleSlug": "palindrome-partitioning", + "status": "ac", + "difficulty": "Medium", + "questionId": "131", + "topicTags": "Depth-first Search, Dynamic Programming, Backtracking" }, { "title": "Reorder List", @@ -601,7 +629,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "143", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Binary Tree Preorder Traversal", @@ -609,7 +637,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "144", - "lang": "javascript" + "topicTags": "Stack, Tree" }, { "title": "Binary Tree Postorder Traversal", @@ -617,7 +645,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "145", - "lang": "javascript" + "topicTags": "Stack, Tree" }, { "title": "Insertion Sort List", @@ -625,7 +653,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "147", - "lang": "javascript" + "topicTags": "Sort, Linked List" }, { "title": "Sort List", @@ -633,7 +661,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "148", - "lang": "javascript" + "topicTags": "Sort, Linked List" }, { "title": "Max Points on a Line", @@ -641,7 +669,7 @@ "status": "ac", "difficulty": "Hard", "questionId": "149", - "lang": "javascript" + "topicTags": "Hash Table, Math" }, { "title": "Evaluate Reverse Polish Notation", @@ -649,7 +677,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "150", - "lang": "javascript" + "topicTags": "Stack" }, { "title": "Reverse Words in a String", @@ -657,7 +685,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "151", - "lang": "javascript" + "topicTags": "String" }, { "title": "Two Sum II - Input array is sorted", @@ -665,7 +693,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "167", - "lang": "javascript" + "topicTags": "Array, Two Pointers, Binary Search" }, { "title": "Binary Tree Right Side View", @@ -673,7 +701,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "199", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search, Breadth-first Search, Recursion, Queue" + }, + { + "title": "Number of Islands", + "titleSlug": "number-of-islands", + "status": "ac", + "difficulty": "Medium", + "questionId": "200", + "topicTags": "Depth-first Search, Breadth-first Search, Union Find" }, { "title": "Happy Number", @@ -681,7 +717,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "202", - "lang": "javascript" + "topicTags": "Hash Table, Math" }, { "title": "Remove Linked List Elements", @@ -689,7 +725,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "203", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Isomorphic Strings", @@ -697,7 +733,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "205", - "lang": "javascript" + "topicTags": "Hash Table" }, { "title": "Reverse Linked List", @@ -705,7 +741,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "206", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Minimum Size Subarray Sum", @@ -713,7 +749,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "209", - "lang": "javascript" + "topicTags": "Array, Two Pointers, Binary Search" }, { "title": "Kth Largest Element in an Array", @@ -721,7 +757,15 @@ "status": "ac", "difficulty": "Medium", "questionId": "215", - "lang": "javascript" + "topicTags": "Heap, Divide and Conquer" + }, + { + "title": "Combination Sum III", + "titleSlug": "combination-sum-iii", + "status": "ac", + "difficulty": "Medium", + "questionId": "216", + "topicTags": "Array, Backtracking" }, { "title": "Contains Duplicate", @@ -729,7 +773,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "217", - "lang": "javascript" + "topicTags": "Array, Hash Table" }, { "title": "Contains Duplicate II", @@ -737,7 +781,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "219", - "lang": "javascript" + "topicTags": "Array, Hash Table" }, { "title": "Contains Duplicate III", @@ -745,7 +789,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "220", - "lang": "javascript" + "topicTags": "Sort, Ordered Map" }, { "title": "Count Complete Tree Nodes", @@ -753,7 +797,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "222", - "lang": "javascript" + "topicTags": "Tree, Binary Search" }, { "title": "Invert Binary Tree", @@ -761,7 +805,15 @@ "status": "ac", "difficulty": "Easy", "questionId": "226", - "lang": "javascript" + "topicTags": "Tree" + }, + { + "title": "Kth Smallest Element in a BST", + "titleSlug": "kth-smallest-element-in-a-bst", + "status": "ac", + "difficulty": "Medium", + "questionId": "230", + "topicTags": "Tree, Binary Search" }, { "title": "Palindrome Linked List", @@ -769,7 +821,23 @@ "status": "ac", "difficulty": "Easy", "questionId": "234", - "lang": "javascript" + "topicTags": "Linked List, Two Pointers" + }, + { + "title": "Lowest Common Ancestor of a Binary Search Tree", + "titleSlug": "lowest-common-ancestor-of-a-binary-search-tree", + "status": "ac", + "difficulty": "Easy", + "questionId": "235", + "topicTags": "Tree" + }, + { + "title": "Lowest Common Ancestor of a Binary Tree", + "titleSlug": "lowest-common-ancestor-of-a-binary-tree", + "status": "ac", + "difficulty": "Medium", + "questionId": "236", + "topicTags": "Tree" }, { "title": "Delete Node in a Linked List", @@ -777,8 +845,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "237", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} node\n * @return {void} Do not return anything, modify node in-place instead.\n */\nvar deleteNode = function(node) {\n node.val = node.next.val\n node.next = node.next.next\n}", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Valid Anagram", @@ -786,8 +853,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "242", - "code": "/**\n * @param {string} s\n * @param {string} t\n * @return {boolean}\n */\nvar isAnagram = function(s, t) {\n const map = new Map()\n for (let i = 0; i < s.length; i++) {\n const getMap = map.get(s[i])\n if (!getMap) {\n map.set(s[i], 1)\n } else {\n map.set(s[i], getMap + 1)\n }\n }\n\n for (let i = 0; i < t.length; i++) {\n const getMap = map.get(t[i])\n if (getMap === 1) {\n map.delete(t[i])\n } else if (getMap) {\n map.set(t[i], getMap - 1)\n } else {\n map.set(t[i], 1)\n }\n }\n\n if (map.size) {\n return false\n } else {\n return true\n }\n};", - "lang": "javascript" + "topicTags": "Sort, Hash Table" }, { "title": "Binary Tree Paths", @@ -795,8 +861,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "257", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {string[]}\n */\nvar binaryTreePaths = function(root) {\n const result = []\n if (!root) return result\n\n printTreePaths(root, result, '')\n return result\n}\n\nvar printTreePaths = function(node, result, str) {\n if (!node.left && !node.right) {\n str += `${node.val}`\n result.push(str)\n return\n }\n\n str += `${node.val}->`\n\n if (node.left) {\n printTreePaths(node.left, result, str)\n }\n\n if (node.right) {\n printTreePaths(node.right, result, str)\n }\n}", - "lang": "javascript" + "topicTags": "Tree, Depth-first Search" }, { "title": "Perfect Squares", @@ -804,8 +869,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "279", - "code": "/**\n * @param {number} n\n * @return {number}\n */\nvar numSquares = function(n) {\n const list = []\n list.push({ num: n, step: 0 })\n const visitedObj = { [n]: true }\n while (list.length > 0) {\n const { num, step, visited } = list.shift()\n for (let i = 1;; i++) {\n const extraNum = num - i * i\n if (extraNum < 0) break\n if (extraNum === 0) return step + 1\n if (!visitedObj[extraNum]) {\n visitedObj[extraNum] = true\n list.push({ num: num - i * i, step: step + 1 })\n }\n }\n }\n}", - "lang": "javascript" + "topicTags": "Breadth-first Search, Math, Dynamic Programming" }, { "title": "Move Zeroes", @@ -813,8 +877,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "283", - "code": "/**\n * @param {number[]} nums\n * @return {void} Do not return anything, modify nums in-place instead.\n */\nvar moveZeroes = function(nums) {\n const length = nums.length\n let count = 0 // 0 的个数\n for (let i = 0; i < length; i++) {\n if (nums[i - count] === 0) {\n nums.splice(i - count, 1)\n count++\n }\n }\n for (let i = 0; i < count; i++) {\n nums.push(0)\n }\n return nums\n}", - "lang": "javascript" + "topicTags": "Array, Two Pointers" }, { "title": "Word Pattern", @@ -822,8 +885,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "290", - "code": "/**\n * @param {string} pattern\n * @param {string} str\n * @return {boolean}\n */\nvar wordPattern = function(pattern, str) {\n const strArr = str.split(' ')\n if (pattern.length !== strArr.length) return false\n\n const patternMap = new Map()\n const strArrMap = new Map()\n\n for (let i = 0; i < pattern.length; i++) {\n const getPatternMap = patternMap.get(pattern[i])\n const getStrArrMap = strArrMap.get(strArr[i])\n if (!getPatternMap) {\n patternMap.set(pattern[i], strArr[i])\n } else if (getPatternMap !== strArr[i]) {\n return false\n }\n\n if (!getStrArrMap) {\n strArrMap.set(strArr[i], pattern[i])\n } else if (getStrArrMap !== pattern[i]) {\n return false\n }\n }\n\n return true\n};", - "lang": "javascript" + "topicTags": "Hash Table" }, { "title": "Odd Even Linked List", @@ -831,8 +893,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "328", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @return {ListNode}\n */\nvar oddEvenList = function(head) {\n if (!head) return head\n const list = new ListNode(0)\n list.next = head\n const odd = list.next\n const even = odd.next\n\n let prev = null\n let cur = list.next\n let next = cur.next\n let count = 1\n\n while (next) {\n prev && (prev.next = next)\n prev = cur\n cur = next\n next = cur.next\n count++\n }\n\n if (count % 2 === 1) {\n prev && (prev.next = null)\n cur.next = even\n } else {\n prev.next = even\n }\n\n return odd\n}", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Flatten Nested List Iterator", @@ -840,8 +901,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "341", - "code": "/**\n * // This is the interface that allows for creating nested lists.\n * // You should not implement it, or speculate about its implementation\n * function NestedInteger() {\n *\n * Return true if this NestedInteger holds a single integer, rather than a nested list.\n * @return {boolean}\n * this.isInteger = function() {\n * ...\n * };\n *\n * Return the single integer that this NestedInteger holds, if it holds a single integer\n * Return null if this NestedInteger holds a nested list\n * @return {integer}\n * this.getInteger = function() {\n * ...\n * };\n *\n * Return the nested list that this NestedInteger holds, if it holds a nested list\n * Return null if this NestedInteger holds a single integer\n * @return {NestedInteger[]}\n * this.getList = function() {\n * ...\n * };\n * };\n */\n/**\n * @constructor\n * @param {NestedInteger[]} nestedList\n */\nvar NestedIterator = function(nestedList) {\n this.printArr = []\n if (!nestedList) return\n this.stackList = []\n this.stackList.push({ color: 'gray', list: nestedList })\n while (this.stackList.length > 0) {\n const { color, list } = this.stackList.pop()\n if (color === 'white') {\n this.printArr.unshift(list)\n } else {\n for (let i = 0; i < list.length; i++) {\n if (list[i].isInteger()) {\n this.stackList.push({ color: 'white', list: list[i].getInteger() })\n } else {\n this.stackList.push({ color: 'gray', list: list[i].getList() })\n }\n }\n }\n }\n}\n\n/**\n * @this NestedIterator\n * @returns {boolean}\n */\nNestedIterator.prototype.hasNext = function() {\n return this.printArr.length > 0\n}\n\n/**\n * @this NestedIterator\n * @returns {integer}\n */\nNestedIterator.prototype.next = function() {\n return this.printArr.shift()\n}", - "lang": "javascript" + "topicTags": "Stack, Design" }, { "title": "Reverse String", @@ -849,8 +909,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "344", - "code": "/**\n * @param {character[]} s\n * @return {void} Do not return anything, modify s in-place instead.\n */\nvar reverseString = function(s) {\n let left = 0, right = s.length - 1\n\n while (left <= right) {\n swap(s, left, right)\n left++\n right--\n }\n}\n\n/* 交换位置\n nums 数组, a, b 为下标\n*/\nvar swap = function(nums, a, b) {\n const tmp = nums[a]\n nums[a] = nums[b]\n nums[b] = tmp\n}", - "lang": "javascript" + "topicTags": "Two Pointers, String" }, { "title": "Top K Frequent Elements", @@ -858,8 +917,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "347", - "code": "/**\n * @param {number[]} nums\n * @param {number} k\n * @return {number[]}\n */\nvar topKFrequent = function(nums, k) {\n const obj = {}\n for (let i = 0; i < nums.length; i++) {\n if (!obj[nums[i]]) {\n obj[nums[i]] = 1\n } else {\n obj[nums[i]] = obj[nums[i]] + 1\n }\n }\n\n const list = []\n\n const keysArr = Object.keys(obj)\n for (let i = 0; i < keysArr.length; i++) {\n const key = keysArr[i]\n const value = obj[key]\n if (!list[value - 1]) {\n list[value - 1] = [parseInt(key, 10)]\n } else {\n list[value - 1].push(parseInt(key, 10))\n }\n }\n\n const result = []\n let count = 0\n for (let i = list.length - 1; i >= 0; i--) {\n const curList = list[i]\n if (curList) {\n for (let x = 0; x < curList.length; x++) {\n if (count === k) return result\n result.push(curList[x])\n count++\n }\n }\n }\n return result\n}", - "lang": "javascript" + "topicTags": "Heap, Hash Table" }, { "title": "Intersection of Two Arrays", @@ -867,8 +925,7 @@ "status": "ac", "difficulty": "Easy", "questionId": "349", - "code": "/**\n * @param {number[]} nums1\n * @param {number[]} nums2\n * @return {number[]}\n */\nvar intersection = function(nums1, nums2) {\n const resultSet = new Set()\n const num1Set = new Set(nums1)\n for (let i = 0; i < nums2.length; i++) {\n if (num1Set.has(nums2[i])) {\n resultSet.add(nums2[i])\n }\n }\n\n return [...resultSet]\n};", - "lang": "javascript" + "topicTags": "Sort, Hash Table, Two Pointers, Binary Search" }, { "title": "Intersection of Two Arrays II", @@ -876,8 +933,15 @@ "status": "ac", "difficulty": "Easy", "questionId": "350", - "code": "/**\n * @param {number[]} nums1\n * @param {number[]} nums2\n * @return {number[]}\n */\nvar intersect = function(nums1, nums2) {\n const nums1Map = getMap(nums1)\n const nums2Map = getMap(nums2)\n \n const result = []\n\n nums1Map.forEach((nums1Value, key) => {\n const nums2MapHasKey = nums2Map.get(key)\n if (nums2MapHasKey) {\n for (let i = 0; i < Math.min(nums1Value, nums2MapHasKey); i++) {\n result.push(key)\n }\n }\n })\n \n return result\n};\n\nvar getMap = function(arr) {\n const map = new Map()\n for (let i = 0; i < arr.length; i++) {\n const getValue = map.get(arr[i])\n if (!getValue) {\n map.set(arr[i], 1)\n } else {\n map.set(arr[i], getValue + 1)\n }\n }\n return map\n}", - "lang": "javascript" + "topicTags": "Sort, Hash Table, Two Pointers, Binary Search" + }, + { + "title": "Binary Watch", + "titleSlug": "binary-watch", + "status": "ac", + "difficulty": "Easy", + "questionId": "401", + "topicTags": "Bit Manipulation, Backtracking" }, { "title": "Sum of Left Leaves", @@ -885,8 +949,23 @@ "status": "ac", "difficulty": "Easy", "questionId": "404", - "code": "/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {number}\n */\nvar sumOfLeftLeaves = function(root) {\n if (!root) return 0\n if (root.left) {\n if (!root.left.left && !root.left.right) {\n return root.left.val + sumOfLeftLeaves(root.right)\n } else {\n return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right)\n }\n } else {\n return sumOfLeftLeaves(root.right)\n }\n};", - "lang": "javascript" + "topicTags": "Tree" + }, + { + "title": "Pacific Atlantic Water Flow", + "titleSlug": "pacific-atlantic-water-flow", + "status": "ac", + "difficulty": "Medium", + "questionId": "417", + "topicTags": "Depth-first Search, Breadth-first Search" + }, + { + "title": "Path Sum III", + "titleSlug": "path-sum-iii", + "status": "ac", + "difficulty": "Medium", + "questionId": "437", + "topicTags": "Tree" }, { "title": "Find All Anagrams in a String", @@ -894,8 +973,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "438", - "code": "var findAnagrams = function(s, p) {\n const pLength = p.length\n const initHashObj = {} // 初始化 hash 对象\n let hashObj = {}\n const targetObj = {}\n for (let i = 0; i < p.length; i++) {\n targetObj[p[i]] = typeof(targetObj[p[i]]) === 'number' ? targetObj[p[i]] + 1 : 0\n initHashObj[p[i]] = 0\n hashObj[p[i]] = 0\n }\n\n const result = [] // 存储结果\n\n let left = 0, right = 0\n\n while (left < s.length && right < s.length) {\n if (typeof(hashObj[s[right]]) === 'number' && hashObj[s[right]] <= targetObj[s[right]]) {\n hashObj[s[right]] = hashObj[s[right]] + 1\n if (right - left + 1 === pLength) result.push(left)\n right++\n } else if (typeof(hashObj[s[right]]) !== 'number') {\n right++\n left = right\n hashObj = JSON.parse(JSON.stringify(initHashObj))\n } else {\n hashObj[s[left]] !== initHashObj[s[left]] && (hashObj[s[left]] = hashObj[s[left]] - 1)\n left++\n }\n }\n\n return result\n};", - "lang": "javascript" + "topicTags": "Hash Table" }, { "title": "Add Two Numbers II", @@ -903,17 +981,23 @@ "status": "ac", "difficulty": "Medium", "questionId": "445", - "code": "/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} l1\n * @param {ListNode} l2\n * @return {ListNode}\n */\nvar addTwoNumbers = function(l1, l2) {\n let countl1 = 0, countl2 = 0\n let l1List = l1\n let l2List = l2\n while(l1List) {\n countl1++\n l1List = l1List.next\n }\n\n while(l2List) {\n countl2++\n l2List = l2List.next\n }\n\n // creat the frontest List\n let tmpList = new ListNode(0)\n let cur = tmpList\n let diff = Math.abs(countl2 - countl1)\n while (diff--) {\n cur.next = new ListNode(0)\n cur = cur.next\n }\n\n if (countl1 < countl2) {\n cur.next = l1\n l1 = tmpList.next\n } else if (countl2 < countl1) {\n cur.next = l2\n l2 = tmpList.next\n }\n\n\n // flag: 1 shows digit carry, 0 not;\n var digitCarry = 0\n\n /**\n * calculate the sum of l1 and l2\n */\n function listNodeAdd(l1, l2) {\n if (l1 === null) return\n\n listNodeAdd(l1.next, l2.next)\n\n let sum = l1.val + l2.val + digitCarry\n if (sum >= 10) {\n l1.val = sum % 10\n digitCarry = 1\n } else {\n l1.val = sum\n digitCarry = 0\n }\n }\n\n listNodeAdd(l1, l2)\n\n let result = l1\n if (digitCarry === 1) {\n result = new ListNode(1)\n result.next = l1\n }\n\n return result\n}", - "lang": "javascript" + "topicTags": "Linked List" }, { "title": "Number of Boomerangs", "titleSlug": "number-of-boomerangs", "status": "ac", - "difficulty": "Easy", + "difficulty": "Medium", "questionId": "447", - "code": "var numberOfBoomerangs = function (points) {\n const getDistancePow = (x, y) => {\n return Math.pow((y[0] - x[0]), 2) + Math.pow((y[1] - x[1]), 2)\n }\n\n let result = 0\n\n for (let p = 0; p < points.length; p++) {\n const tmpMap = new Map()\n for (let n = 0; n < points.length; n++) {\n if (p === n) continue\n const distancePow = getDistancePow(points[p], points[n])\n const hasDistancePow = tmpMap.has(`${distancePow}`)\n if (hasDistancePow) {\n tmpMap.set(`${distancePow}`, tmpMap.get(`${distancePow}`) + 1)\n } else {\n tmpMap.set(`${distancePow}`, 1)\n }\n }\n tmpMap.forEach((value, key) => {\n if (value > 1) {\n const sum = value * (value - 1)\n result += sum\n }\n })\n tmpMap.clear()\n }\n\n return result\n}", - "lang": "javascript" + "topicTags": "Hash Table, Math" + }, + { + "title": "Delete Node in a BST", + "titleSlug": "delete-node-in-a-bst", + "status": "ac", + "difficulty": "Medium", + "questionId": "450", + "topicTags": "Tree" }, { "title": "Sort Characters By Frequency", @@ -921,8 +1005,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "451", - "code": "/**\n * @param {string} s\n * @return {string}\n */\nvar frequencySort = function(s) {\n const map = new Map()\n for (let i = 0; i < s.length; i++) {\n const getMap = map.get(s[i])\n if (!getMap) {\n map.set(s[i], 1)\n } else {\n map.set(s[i], getMap + 1)\n }\n }\n\n const arr = []\n // for (let i = 0; i < map.keys.length; i++) {\n // const key = map.keys[i]\n for (let key of map.keys()) {\n arr.push({\n key,\n value: map.get(key)\n })\n }\n\n // todo 后续实现下以下排序\n arr.sort((a, b) => b.value - a.value)\n\n const result = arr.map(r => {\n let str = ''\n for (let i = 0; i < r.value; i++) {\n str = str + r.key\n }\n return str\n }).join('')\n\n return result\n};", - "lang": "javascript" + "topicTags": "Heap, Hash Table" }, { "title": "4Sum II", @@ -930,8 +1013,7 @@ "status": "ac", "difficulty": "Medium", "questionId": "454", - "code": "/**\n * @param {number[]} A\n * @param {number[]} B\n * @param {number[]} C\n * @param {number[]} D\n * @return {number}\n */\nvar fourSumCount = function(A, B, C, D) {\n const tmpMap = new Map()\n for (let ic = 0; ic < C.length; ic++) {\n for (let id = 0; id < D.length; id++) {\n const sumC_D = C[ic] + D[id]\n const hasSumC_D = tmpMap.has(sumC_D)\n if (hasSumC_D) {\n tmpMap.set(sumC_D, tmpMap.get(sumC_D) + 1)\n } else {\n tmpMap.set(sumC_D, 1)\n }\n }\n }\n\n let count = 0\n\n for (let ia = 0; ia < A.length; ia++) {\n for (let ib = 0; ib < B.length; ib++) {\n const sumA_B = A[ia] + B[ib]\n tmpMap.has(-sumA_B) && (count = count + tmpMap.get(-sumA_B))\n }\n }\n\n return count\n}", - "lang": "javascript" + "topicTags": "Hash Table, Binary Search" }, { "title": "Permutation in String", @@ -939,7 +1021,6 @@ "status": "ac", "difficulty": "Medium", "questionId": "567", - "code": "/** 18.12.08 */\n/**\n * @param {string} s1\n * @param {string} s2\n * @return {boolean}\n */\nvar checkInclusion = function (s1, s2) {\n const s1Obj = {}\n const s1Length = s1.length\n for (let i = 0; i < s1Length; i++) {\n if (s1Obj[s1[i]]) {\n s1Obj[s1[i]] = ++s1Obj[s1[i]]\n } else {\n s1Obj[s1[i]] = 1\n }\n }\n\n const s2Length = s2.length\n\n if (s1Length > s2Length) {\n return false\n }\n\n const count = s2Length - s1Length\n let str = ''\n\n for (let i = 0; i <= count; i++) {\n str = s2.slice(i, s1Length + i)\n const s2Obj = {}\n for (let z = 0; z < str.length; z++) {\n if (!s1Obj[str[z]]) {\n i = i + z\n break\n }\n if (s2Obj[str[z]]) {\n s2Obj[str[z]] = s2Obj[str[z]] + 1\n } else {\n s2Obj[str[z]] = 1\n }\n }\n\n let bool = true\n for (let y = 0; y < Object.keys(s1Obj).length; y++) {\n if (s2Obj[Object.keys(s1Obj)[y]] !== s1Obj[Object.keys(s1Obj)[y]]) {\n bool = false\n break\n }\n }\n\n if (bool === true) {\n return true\n }\n }\n\n return false\n};", - "lang": "javascript" + "topicTags": "Two Pointers, Sliding Window" } ] \ No newline at end of file diff --git a/packages/leetcode-cli/src/leetcode.js b/packages/leetcode-cli/src/leetcode.js index 039e6b86..35aed6ce 100644 --- a/packages/leetcode-cli/src/leetcode.js +++ b/packages/leetcode-cli/src/leetcode.js @@ -40,7 +40,9 @@ const login = async () => { const spinner = ora('Login...').start() try { - const browser = await puppeteer.launch({ headless: false }) + // it have to set executablePath or it'll be broken.https://github.com/puppeteer/puppeteer/issues/6425 + // temporary way: https://stackoverflow.com/questions/47122579/run-puppeteer-on-already-installed-chrome-on-macos + const browser = await puppeteer.launch({ headless: false, executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' }) const page = await browser.newPage() await page.goto(loginUrl) await page.waitForFunction('window.location.href.indexOf("login") === -1') From 5c2b6a7fef981521e018b2fdc3d48dc4f0f9f821 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 31 Mar 2021 13:53:31 +0800 Subject: [PATCH 222/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- packages/leetcode-cli/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lerna.json b/lerna.json index 6c896801..bddde5e6 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.1.4", + "version": "1.1.5", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 7ecbca1b..2f948b51 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.1.4", + "version": "1.1.5", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index 61c5cd2e..b1236eaa 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "1.1.3", + "version": "1.1.5", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" From 95498d2afbe26ed9034540a383aec4de1f21662b Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 30 May 2021 13:47:44 +0800 Subject: [PATCH 223/352] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E6=95=B0=E9=87=8F=E8=BF=87=E5=A4=9A,=20puppeteer=20?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E8=B6=85=E6=97=B6=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 6 ++++++ packages/scripts/package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index e219f427..9fc49fd0 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -3,6 +3,12 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.2.0 + +- **Fix** + + - 🐞 修复路由数量过多, puppeteer 运行超时的问题。[issue](https://github.com/MuYunyun/blog/issues/115)。 + ### 1.1.4 - **Fix** diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 3d34b444..83b70f91 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -23,7 +23,7 @@ "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", "crd-generator-sitemap": "^1.1.3", - "crd-prerender-spa-plugin": "^0.1.0", + "crd-prerender-spa-plugin": "^0.2.0", "crd-theme": "^1.1.3", "crd-utils": "^1.1.3", "css-loader": "^0.28.7", diff --git a/yarn.lock b/yarn.lock index d94a8c81..c52d79aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3864,10 +3864,10 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" -crd-prerender-spa-plugin@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/crd-prerender-spa-plugin/-/crd-prerender-spa-plugin-0.1.0.tgz#897a5a44843f94e6aebb062b84f71d5dec622443" - integrity sha512-wu2Je38HMN7dOPA2RfrrxfAkDmmKzFA+8TOiY+vd5W4+lgiremfIa7HAp1pbAm0+DKKlS/vau66uI42GCLaO9Q== +crd-prerender-spa-plugin@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/crd-prerender-spa-plugin/-/crd-prerender-spa-plugin-0.2.0.tgz#969a39b70dcafb3490fdbd2737657a336b1321c1" + integrity sha512-pd0MGvm2LtypZkNVCcFyb8PooTqlki/EvQvwOJF2TxrMb5jltFljqTlAt/wfpUScrbYAy58t0GsBJfInLM1ErQ== dependencies: "@prerenderer/prerenderer" "^0.7.2" "@prerenderer/renderer-puppeteer" "^0.2.0" From e242bd0ed9ee931de0b03c68506bd4663f26ec11 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 30 May 2021 13:50:16 +0800 Subject: [PATCH 224/352] chore: publish --- lerna.json | 2 +- packages/create-react-doc/package.json | 4 ++-- packages/scripts/package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lerna.json b/lerna.json index bddde5e6..4c98ae48 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.1.5", + "version": "1.2.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 5e1dc579..5dbb4206 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.1.3", + "version": "1.2.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.1.3", + "crd-scripts": "^1.2.0", "crd-templates": "^1.0.0", "crd-theme": "^1.1.3", "fs-extra": "^5.0.0" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 83b70f91..99280b75 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.1.3", + "version": "1.2.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { From d880ee93fb0e191c0e6b66e5c0e7eaa5229ed0d7 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 31 May 2021 02:15:09 +0800 Subject: [PATCH 225/352] chore: add scripts for install quickly --- package.json | 4 +- packages/scripts/package.json | 1 + utils/uppackage-dev.sh | 1 + utils/uppackage.sh | 1 + yarn.lock | 563 +++++++++++++++++++++++++++++++++- 5 files changed, 554 insertions(+), 16 deletions(-) create mode 100644 utils/uppackage-dev.sh create mode 100644 utils/uppackage.sh diff --git a/package.json b/package.json index 635056b6..964f6f77 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,9 @@ "release": "lerna publish", "release-qa": "lerna publish --npm-tag=beta", "cleanup": "rm -rf node_modules/gh-pages/.cache", - "deploy:site": "npm run cleanup && node gh-pages" + "deploy:site": "npm run cleanup && node gh-pages", + "up:dev": "sh utils/uppackage-dev.sh", + "up": "sh utils/uppackage.sh" }, "repository": { "type": "git", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 99280b75..6c4b2e36 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -15,6 +15,7 @@ "@babel/preset-env": "^7.3.4", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.3.4", + "@mdx-js/loader": "^1.6.22", "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2", "babel-eslint": "^8.0.1", "babel-loader": "^8.0.5", diff --git a/utils/uppackage-dev.sh b/utils/uppackage-dev.sh new file mode 100644 index 00000000..e7c1f6e7 --- /dev/null +++ b/utils/uppackage-dev.sh @@ -0,0 +1 @@ +lerna add $1 --scope=$2 --dev \ No newline at end of file diff --git a/utils/uppackage.sh b/utils/uppackage.sh new file mode 100644 index 00000000..ab5fa7ec --- /dev/null +++ b/utils/uppackage.sh @@ -0,0 +1 @@ +lerna add $1 --scope=$2 \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c52d79aa..f1d3ca23 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,11 +33,40 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + "@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9" integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg== +"@babel/core@7.12.9": + version "7.12.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/core@^7.3.4": version "7.12.3" resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" @@ -80,6 +109,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.14.2": + version "7.14.3" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== + dependencies: + "@babel/types" "^7.14.2" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -176,6 +214,15 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" +"@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.14.2" + "@babel/helper-get-function-arity@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" @@ -190,6 +237,13 @@ dependencies: "@babel/types" "^7.10.4" +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" @@ -233,7 +287,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== @@ -292,11 +346,23 @@ dependencies: "@babel/types" "^7.11.0" +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + "@babel/helper-validator-option@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" @@ -321,6 +387,15 @@ "@babel/traverse" "^7.12.5" "@babel/types" "^7.12.5" +"@babel/helpers@^7.12.5": + version "7.14.0" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" + "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" @@ -339,11 +414,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.12.13": + version "7.14.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.10.4", "@babel/parser@^7.12.3", "@babel/parser@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== +"@babel/parser@^7.12.13", "@babel/parser@^7.12.7", "@babel/parser@^7.14.2": + version "7.14.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" + integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== + "@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" @@ -409,7 +498,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.12.1": +"@babel/plugin-proposal-object-rest-spread@7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== @@ -486,7 +575,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.12.1": +"@babel/plugin-syntax-jsx@7.12.1", "@babel/plugin-syntax-jsx@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== @@ -514,7 +603,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -988,6 +1077,15 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" +"@babel/template@^7.12.13", "@babel/template@^7.12.7": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" @@ -1019,6 +1117,20 @@ globals "^11.1.0" lodash "^4.17.19" +"@babel/traverse@^7.12.9", "@babel/traverse@^7.14.0": + version "7.14.2" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" @@ -1037,6 +1149,14 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.12.13", "@babel/types@^7.12.7", "@babel/types@^7.14.0", "@babel/types@^7.14.2": + version "7.14.4" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0" + integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + to-fast-properties "^2.0.0" + "@eslint/eslintrc@^0.2.1": version "0.2.1" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" @@ -1835,6 +1955,50 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" +"@mdx-js/loader@^1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" + integrity sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q== + dependencies: + "@mdx-js/mdx" "1.6.22" + "@mdx-js/react" "1.6.22" + loader-utils "2.0.0" + +"@mdx-js/mdx@1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" + integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== + dependencies: + "@babel/core" "7.12.9" + "@babel/plugin-syntax-jsx" "7.12.1" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@mdx-js/util" "1.6.22" + babel-plugin-apply-mdx-type-prop "1.6.22" + babel-plugin-extract-import-names "1.6.22" + camelcase-css "2.0.1" + detab "2.0.4" + hast-util-raw "6.0.1" + lodash.uniq "4.5.0" + mdast-util-to-hast "10.0.1" + remark-footnotes "2.0.0" + remark-mdx "1.6.22" + remark-parse "8.0.3" + remark-squeeze-paragraphs "4.0.0" + style-to-object "0.3.0" + unified "9.2.0" + unist-builder "2.0.3" + unist-util-visit "2.0.3" + +"@mdx-js/react@1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" + integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== + +"@mdx-js/util@1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" + integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -2037,6 +2201,13 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/hast@^2.0.0": + version "2.3.1" + resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" + integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q== + dependencies: + "@types/unist" "*" + "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" @@ -2052,6 +2223,13 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/mdast@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== + dependencies: + "@types/unist" "*" + "@types/minimatch@*": version "3.0.3" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -2072,6 +2250,11 @@ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + "@types/puppeteer@^2.0.0": version "2.1.5" resolved "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-2.1.5.tgz#9137aa87dca21450820bfd6fa4fe747bc8176381" @@ -2101,6 +2284,11 @@ dependencies: source-map "^0.6.1" +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + "@types/webpack-sources@*": version "2.1.0" resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" @@ -2775,6 +2963,14 @@ babel-loader@^8.0.5: pify "^4.0.1" schema-utils "^2.6.5" +babel-plugin-apply-mdx-type-prop@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" + integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + "@mdx-js/util" "1.6.22" + babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -2782,6 +2978,13 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" +babel-plugin-extract-import-names@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" + integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + babylon@7.0.0-beta.44: version "7.0.0-beta.44" resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" @@ -3143,6 +3346,11 @@ camel-case@^4.1.1: pascal-case "^3.1.2" tslib "^2.0.3" +camelcase-css@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -3224,6 +3432,11 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + chalk@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3574,6 +3787,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + commander@2.15.1: version "2.15.1" resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" @@ -4353,6 +4571,13 @@ destroy@~1.0.4: resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detab@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" + integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== + dependencies: + repeat-string "^1.5.4" + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -5937,6 +6162,74 @@ has@^1.0.0, has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hast-util-raw@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" + integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -6044,6 +6337,11 @@ html-minifier@^4.0.0: relateurl "^0.2.7" uglify-js "^3.5.1" +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + html-webpack-plugin@^4.5.1: version "4.5.1" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz#40aaf1b5cb78f2f23a83333999625c20929cda65" @@ -6360,6 +6658,11 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@^3.0.6: version "3.3.0" resolved "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -6486,7 +6789,7 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-alphabetical@^1.0.0: +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== @@ -6533,6 +6836,11 @@ is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" @@ -6725,6 +7033,11 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -7186,6 +7499,15 @@ loader-runner@^4.2.0: resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" @@ -7195,15 +7517,6 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4 emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - loading-cli@^1.0.6: version "1.1.0" resolved "https://registry.npmjs.org/loading-cli/-/loading-cli-1.1.0.tgz#3457edaa3290439ad0061755174363a8091d56bc" @@ -7301,7 +7614,7 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.uniq@^4.5.0: +lodash.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -7475,6 +7788,34 @@ mdast-add-list-metadata@1.0.1: dependencies: unist-util-visit-parents "1.1.2" +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-to-hast@10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" + integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" @@ -7485,6 +7826,11 @@ mdn-data@2.0.4: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + media-typer@0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -8580,6 +8926,18 @@ parse-entities@^1.1.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" @@ -8628,6 +8986,11 @@ parse-url@^5.0.0: parse-path "^4.0.0" protocols "^1.4.0" +parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -9483,6 +9846,13 @@ prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +property-information@^5.0.0, property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -10069,6 +10439,47 @@ relateurl@^0.2.7: resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +remark-footnotes@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" + integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== + +remark-mdx@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" + integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== + dependencies: + "@babel/core" "7.12.9" + "@babel/helper-plugin-utils" "7.10.4" + "@babel/plugin-proposal-object-rest-spread" "7.12.1" + "@babel/plugin-syntax-jsx" "7.12.1" + "@mdx-js/util" "1.6.22" + is-alphabetical "1.0.4" + remark-parse "8.0.3" + unified "9.2.0" + +remark-parse@8.0.3: + version "8.0.3" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" + integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + remark-parse@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" @@ -10090,6 +10501,13 @@ remark-parse@^5.0.0: vfile-location "^2.0.0" xtend "^4.0.1" +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -10746,6 +11164,11 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -11098,6 +11521,13 @@ style-loader@^0.19.1: loader-utils "^1.0.2" schema-utils "^0.3.0" +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -11623,6 +12053,18 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unified@9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + unified@^6.1.5: version "6.2.0" resolved "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" @@ -11669,11 +12111,31 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + unist-util-remove-position@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" @@ -11681,11 +12143,32 @@ unist-util-remove-position@^1.0.0: dependencies: unist-util-visit "^1.1.0" +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" + integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== + dependencies: + unist-util-is "^4.0.0" + unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + unist-util-visit-parents@1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" @@ -11698,6 +12181,23 @@ unist-util-visit-parents@^2.0.0: dependencies: unist-util-is "^3.0.0" +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@2.0.3, unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: version "1.4.1" resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" @@ -11886,6 +12386,11 @@ vfile-location@^2.0.0: resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== +vfile-location@^3.0.0, vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + vfile-message@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" @@ -11893,6 +12398,14 @@ vfile-message@^1.0.0: dependencies: unist-util-stringify-position "^1.1.1" +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" @@ -11903,6 +12416,16 @@ vfile@^2.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + warning@^4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" @@ -11932,6 +12455,11 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -12342,3 +12870,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== From b910b482783328065273d1af1bd6b0b1721c4a42 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 3 Jun 2021 13:35:18 +0800 Subject: [PATCH 226/352] feat: support React cp in markdown --- config.yml | 1 + docs/components/index.jsx | 10 ++++ ...46\345\206\231\347\273\204\344\273\266.md" | 9 ++++ packages/scripts/src/conf/webpack.config.js | 4 ++ packages/theme/markdown/InlineCode.js | 47 ++++++++-------- packages/theme/markdown/index.js | 53 ++++++++++--------- 6 files changed, 75 insertions(+), 49 deletions(-) create mode 100644 docs/components/index.jsx create mode 100644 "docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" diff --git a/config.yml b/config.yml index 9afda98d..848d04df 100644 --- a/config.yml +++ b/config.yml @@ -14,6 +14,7 @@ menu: [ docs/自定义主题.md, docs/其它工具.md, docs/更新日志.md, + docs/书写组件.md ] ## set init open menu keys # menuOpenKeys: diff --git a/docs/components/index.jsx b/docs/components/index.jsx new file mode 100644 index 00000000..59b1268e --- /dev/null +++ b/docs/components/index.jsx @@ -0,0 +1,10 @@ +const Button = ({ + children, +}) => { + console.log('children', children) + return {children} +} + +export { + Button, +} diff --git "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" new file mode 100644 index 00000000..bab3e8f0 --- /dev/null +++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" @@ -0,0 +1,9 @@ +import { Button } from './components' + +## 书写组件 + +create-react-doc 内置了 [mdx](https://github.com/mdx-js/mdx) 的能力, 你可以在 .md 文件中书写 React 组件。 + +### 示意 + + diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 1f0a6108..777c3c80 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -74,6 +74,10 @@ module.exports = { }, ], }, + { + test: /\.mdx?$/, + use: ['babel-loader', '@mdx-js/loader'], + }, // “file-loader”确保这些资源由WebpackDevServer服务。 // 当您导入资源时,您将获得(虚拟)文件名。 // 在生产中,它们将被复制到`build`文件夹。 diff --git a/packages/theme/markdown/InlineCode.js b/packages/theme/markdown/InlineCode.js index 98b0ccf6..7c2d7c5a 100644 --- a/packages/theme/markdown/InlineCode.js +++ b/packages/theme/markdown/InlineCode.js @@ -17,7 +17,8 @@ export default class Canvas extends PureComponent { } render() { const sourceCode = this.props.value || '' - const code = sourceCode.replace(/^__dome__/, '').replace(/\\`/g, '`') + // const code = sourceCode.replace(/^__dome__/, '').replace(/\\`/g, '`') + const code = sourceCode.replace(/\\`/g, '`') const PreCode = height => (
              this.codeDom = node} className={classNames('hljs', { [`language-${this.props.language}`]: this.props.language })}>
    @@ -25,29 +26,29 @@ export default class Canvas extends PureComponent {
             
           
    ) - const isPreview = /^(html|htm)$/.test(this.props.language) + // const isPreview = /^(html|htm)$/.test(this.props.language) - if (/^__dome__/.test(sourceCode)) { - return ( -
    - {isPreview && ( -
    -
    -
    - )} - {PreCode(this.state.height)} -
    - {this.state.height === 0 ? '显示' : '隐藏'}代码 - {this.props.language &&
    {this.props.language}
    } -
    -
    - ) - } + // if (/^__dome__/.test(sourceCode)) { + // return ( + //
    + // {isPreview && ( + //
    + //
    + //
    + // )} + // {PreCode(this.state.height)} + //
    + // {this.state.height === 0 ? '显示' : '隐藏'}代码 + // {this.props.language &&
    {this.props.language}
    } + //
    + //
    + // ) + // } return PreCode() } } diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index 1768ba69..dc032053 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -49,43 +49,44 @@ function Markdown({ props }) { } }, [markdownStr]) + console.log('markdownStr', markdownStr) return (
    {markdownStr ? ( { - if (node.type === 'html') { - // if (//.test(node.value)) return false; - // const scriptValue = node.value.match(/(.*?)<\/script>/ig); - // node.value.replace(/(.*?)<\/script>/, (te) => { - // console.log('te:', te); - // }); - } - // 判断 上一个节点是否为 - if ( - node.type === 'code' && - parent.children && - parent.children.length > 0 && - parent.children[index - 1] - ) { - const parentNode = parent.children[index - 1] - if ( - parentNode.type === 'html' && - //.test(parentNode.value) - ) { - node.value = `__dome__${node.value}` - } - } - return node - }} + // allowNode={(node, index, parent) => { + // if (node.type === 'html') { + // // if (//.test(node.value)) return false; + // // const scriptValue = node.value.match(/(.*?)<\/script>/ig); + // // node.value.replace(/(.*?)<\/script>/, (te) => { + // // console.log('te:', te); + // // }); + // } + // // 判断 上一个节点是否为 + // if ( + // node.type === 'code' && + // parent.children && + // parent.children.length > 0 && + // parent.children[index - 1] + // ) { + // const parentNode = parent.children[index - 1] + // if ( + // parentNode.type === 'html' && + // //.test(parentNode.value) + // ) { + // node.value = `__dome__${node.value}` + // } + // } + // return node + // }} /> ) : ( From ba08221fc583d39c0e7d68f8d0b5502be9ce0390 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 4 Jun 2021 20:14:30 +0800 Subject: [PATCH 227/352] feat: support jsx in md --- .babelrc.js | 36 + ...46\345\206\231\347\273\204\344\273\266.md" | 4 +- ...30\351\230\266\347\224\250\346\263\225.md" | 62 -- packages/crd-markdown-loader/.npmrc | 10 + packages/crd-markdown-loader/README.md | 3 + packages/crd-markdown-loader/index.js | 130 ++++ packages/crd-markdown-loader/package.json | 24 + packages/scripts/package.json | 6 +- packages/scripts/src/conf/mdloader.js | 131 ++++ packages/scripts/src/conf/webpack.config.js | 24 +- packages/theme/markdown/index.js | 66 +- yarn.lock | 623 ++---------------- 12 files changed, 449 insertions(+), 670 deletions(-) create mode 100644 .babelrc.js create mode 100644 packages/crd-markdown-loader/.npmrc create mode 100644 packages/crd-markdown-loader/README.md create mode 100644 packages/crd-markdown-loader/index.js create mode 100644 packages/crd-markdown-loader/package.json create mode 100644 packages/scripts/src/conf/mdloader.js diff --git a/.babelrc.js b/.babelrc.js new file mode 100644 index 00000000..806a2b7f --- /dev/null +++ b/.babelrc.js @@ -0,0 +1,36 @@ +const babelrc = { + presets: [ + [ + "@babel/preset-env", + { + targets: { + browsers: ["last 2 versions", "ie >= 10"], + }, + }, + ], + ["@babel/preset-react", { + "runtime": "automatic" + }] + ], + plugins: [ + "@babel/plugin-syntax-object-rest-spread", + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-transform-async-to-generator", + "@babel/plugin-proposal-class-properties", + "@babel/plugin-transform-runtime" + ], + env: { + production: {}, + }, +}; + +if (process.env.NODE_ENV === 'development') { + // 不要包含多余的空格字符和行结束符。 + // 设置为“auto”时,对于大于500KB的输入大小,设置为"true"。 + // https://babeljs.io/docs/usage/api/#options + babelrc.cacheDirectory = true; +} else { + babelrc.compact = true; +} + +module.exports = babelrc diff --git "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" index bab3e8f0..582bd8dd 100644 --- "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" +++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" @@ -1,4 +1,4 @@ -import { Button } from './components' + ## 书写组件 @@ -6,4 +6,4 @@ create-react-doc 内置了 [mdx](https://github.com/mdx-js/mdx) 的能力, 你 ### 示意 - + diff --git "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" index 50a36da9..b5e38364 100644 --- "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" +++ "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" @@ -1,65 +1,3 @@ ## 高阶用法 与 git 文件结构类似, 如果在展示的文件夹中有私有文件不方便展示在文档站点, 可以在 `.gitignore` 文件中设置过滤文件, 这样它们就不会展示在文档站点中了。eg: [.gitignore](https://github.com/MuYunyun/blog/blob/main/.gitignore) - -## 数学公式 - -以 [MathJax](https://github.com/mathjax/MathJax) 为例, 当书写以下数学符号时 - -```markdown -

    - When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are - $$x = {-b \pm \sqrt{\texttip{b^2-4ac}{descriminant}} \over 2a}.$$ -

    -``` - -会被转换为: - -

    - When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are - $$x = {-b \pm \sqrt{\texttip{b^2-4ac}{descriminant}} \over 2a}.$$ -

    - - - -### 使用方式 - -在 `config.yml` 文件中加入 `inject` 字段。 - -```diff -+ inject: injectLogic/index.js -``` - -然后在根目录新建与 `inject` 字段相对应的文件, 声明 `injectWithPathname` 函数, 写入[自定义逻辑](https://github.com/MuYunyun/create-react-doc/injectLogic/index.js), 完成 MathJax 的使用。 - -```js -// perf injectWithPathname logic every pathname changes -const injectWithPathname = (pathname) => { - // demo for using mathjax. see https://github.com/MuYunyun/create-react-doc/issues/63 - if (pathname !== '/高阶用法') return; - window.MathJax = { - tex: { - inlineMath: [['$', '$'], ['\\(', '\\)']], - }, - svg: { - fontCache: 'global', - }, - }; - const script = document.createElement('script'); - script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js'; - const tag = 'mathjax'; - script.id = tag; - script.async = true; - const scriptNode = document.getElementById(tag); - try { - if (!scriptNode) { - document.head.appendChild(script); - } else { - scriptNode.remove(); - document.head.appendChild(script); - } - } catch (error) {} -}; - -module.exports = { injectWithPathname }; -``` \ No newline at end of file diff --git a/packages/crd-markdown-loader/.npmrc b/packages/crd-markdown-loader/.npmrc new file mode 100644 index 00000000..7edb6af8 --- /dev/null +++ b/packages/crd-markdown-loader/.npmrc @@ -0,0 +1,10 @@ +# .npmrc + +registry=https://registry.npmjs.org/ + +# https://github.com/sass/node-sass#binary-configuration-parameters +sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ + +# https://github.com/Medium/phantomjs#deciding-where-to-get-phantomjs +# phantomjs_cdnurl=http://cnpmjs.org/downloads +phantomjs_cdnurl=https://npm.taobao.org/dist/phantomjs diff --git a/packages/crd-markdown-loader/README.md b/packages/crd-markdown-loader/README.md new file mode 100644 index 00000000..66be9a52 --- /dev/null +++ b/packages/crd-markdown-loader/README.md @@ -0,0 +1,3 @@ +### crd-markdown-loader + +markdown loader with webpack for [create-react-doc](https://github.com/MuYunyun/create-react-doc)。 \ No newline at end of file diff --git a/packages/crd-markdown-loader/index.js b/packages/crd-markdown-loader/index.js new file mode 100644 index 00000000..45cb4556 --- /dev/null +++ b/packages/crd-markdown-loader/index.js @@ -0,0 +1,130 @@ +import highlight from 'highlight.js' +import frontMatter from 'front-matter' +import mdContainer from 'markdown-it-container' +import md from 'markdown-it' + +console.log('✅✅✅✅✅✅✅') + +const options = { + className: 'wrap', +} + +const mdLoader = md({ + html: true, // Enable HTML tags in source + xhtmlOut: true, // Use '/' to close single tags (
    ) + typographer: false, + linkify: false, // Auto convert URL-like text to links +}) + .enable(['smartquotes']) + .set({ + highlight(content: any, languageHint: any) { + let highlightedContent = null + + highlight.configure({ + useBR: true, + tabReplace: ' ', + }) + + if (languageHint && highlight.getLanguage(languageHint)) { + try { + highlightedContent = highlight.highlight(languageHint, content).value + } catch (err) { + console.log(err) + } + } + + if (!highlightedContent) { + try { + highlightedContent = highlight.highlightAuto(content).value + } catch (err) { + console.log(err) + } + } + + // 把代码中的{}转 + highlightedContent = highlightedContent.replace( + /[{}]/g, + (match: string) => `{'${match}'}`, + ) + // 加上 highlight js + highlightedContent = highlightedContent + .replace('', '') + + return highlight.fixMarkup(highlightedContent) + }, + }) + +/** at-component-docs__container 用于做除 demo 和 table 之外的公共样式 */ +const formatModule = (imports: string, jsx: string) => { + const moduleText = ` + ${imports} + + export default class extends React.Component { + render(){ + return ( +
    +
    + ${jsx} +
    +
    + ); + } + };` + return moduleText +} + +const formatOpening = () => + `
    +
    +
    ` +const formatClosing = () => + `
    ` + +function markdownLoader(source: any) { + const { + body, + attributes: { imports: importMap }, + } = frontMatter(source) + const imports = `import * as React from 'react';${importMap}` + + /* 处理 :::demo 开头的 markdown 内容 */ + mdLoader.use(mdContainer, 'demo', { + validate: (params: string) => params.trim().match(/^demo\s*(.*)$/), + render: (tokens: any[], idx: number) => { + // container 从开头到结尾把之间的token跑一遍,其中idx定位到具体的位置 + // 有此标记代表 ::: 开始 + if (tokens[idx].nesting === 1) { + let i = 1 + // 从 ::: 下一个token开始 + let token = tokens[idx + i] + + // 如果没有到结尾 + while (token.markup !== ':::') { + i++ + token = tokens[idx + i] + } + // 描述也执行md + return formatOpening() + } + return formatClosing() + }, + }) + + // md 处理过后的字符串含有 class 和 style ,需要再次处理给到 react + let content = mdLoader.render(body) + + content = content + .replace(/
    /g, '
    ') + .replace(/
    /g, '
    ') + .replace(/class=/g, 'className=') + .replace(/style="text-align:center"/g, 'style={{ textAlign: "center"}}') + .replace(/style="text-align:left"/g, 'style={{ textAlign: "left"}}') + .replace(/style="text-align:right"/g, 'style={{ textAlign: "right"}}') + .replace(/\(_blank\)/g, ` target="_blank">`) + + return formatModule(imports, content) +} + +module.exports = markdownLoader diff --git a/packages/crd-markdown-loader/package.json b/packages/crd-markdown-loader/package.json new file mode 100644 index 00000000..12532f36 --- /dev/null +++ b/packages/crd-markdown-loader/package.json @@ -0,0 +1,24 @@ +{ + "name": "crd-markdown-loader", + "version": "1.1.3", + "description": "markdown-loader with webpack for create react doc", + "main": "index.js", + "dependencies": { + "front-matter": "^4.0.2", + "highlight.js": "^11.0.1", + "markdown-it": "^12.0.6", + "markdown-it-container": "^3.0.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/MuYunyun/create-react-doc", + "directory": "packages/utils" + }, + "keywords": [], + "publishConfig": { + "access": "public" + }, + "author": "muyunyun", + "license": "MIT", + "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" +} diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 6c4b2e36..5952fef9 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -15,7 +15,6 @@ "@babel/preset-env": "^7.3.4", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.3.4", - "@mdx-js/loader": "^1.6.22", "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2", "babel-eslint": "^8.0.1", "babel-loader": "^8.0.5", @@ -33,14 +32,17 @@ "eslint": "^7.11.0", "eslint-loader": "^4.0.2", "file-loader": "^1.1.11", + "front-matter": "^4.0.2", "fs-extra": "^5.0.0", "gh-pages": "^1.2.0", - "highlight.js": "^10.5.0", + "highlight.js": "^11.0.1", "html-webpack-plugin": "^4.5.1", "less-loader": "^7.2.1", "loader-utils": "^2.0.0", "loading-cli": "^1.0.6", "local-ip-url": "^1.0.1", + "markdown-it": "^12.0.6", + "markdown-it-container": "^3.0.0", "mini-css-extract-plugin": "^0.4.0", "open-browsers": "^1.1.1", "path-browserify": "^1.0.1", diff --git a/packages/scripts/src/conf/mdloader.js b/packages/scripts/src/conf/mdloader.js new file mode 100644 index 00000000..c7a3caa0 --- /dev/null +++ b/packages/scripts/src/conf/mdloader.js @@ -0,0 +1,131 @@ +import highlight from 'highlight.js' +import frontMatter from 'front-matter' +import mdContainer from 'markdown-it-container' +import md from 'markdown-it' + +const options = { + className: 'wrap', +} + +const mdLoader = md({ + html: true, // Enable HTML tags in source + xhtmlOut: true, // Use '/' to close single tags (
    ) + typographer: false, + linkify: false, // Auto convert URL-like text to links +}) + .enable(['smartquotes']) + .set({ + highlight(content: any, languageHint: any) { + let highlightedContent = null + + highlight.configure({ + useBR: true, + tabReplace: ' ', + }) + + if (languageHint && highlight.getLanguage(languageHint)) { + try { + highlightedContent = highlight.highlight(languageHint, content).value + } catch (err) { + console.log(err) + } + } + + if (!highlightedContent) { + try { + highlightedContent = highlight.highlightAuto(content).value + } catch (err) { + console.log(err) + } + } + + // 把代码中的{}转 + highlightedContent = highlightedContent.replace( + /[{}]/g, + (match: string) => `{'${match}'}`, + ) + // 加上 highlight js + highlightedContent = highlightedContent + .replace('', '') + + return highlight.fixMarkup(highlightedContent) + }, + }) + +/** at-component-docs__container 用于做除 demo 和 table 之外的公共样式 */ +const formatModule = (imports: string, jsx: string) => { + const moduleText = ` + ${imports} + + export default class extends React.Component { + render(){ + return ( +
    +
    + ${jsx} +
    +
    + ); + } + };` + return moduleText +} + +const formatOpening = () => + `
    +
    +
    ` +const formatClosing = () => + `
    ` + +function markdownLoader(source: any) { + const { + body, + attributes: { imports: importMap }, + } = frontMatter(source) + const imports = `import * as React from 'react';${importMap}` + + /* 处理 :::demo 开头的 markdown 内容 */ + mdLoader.use(mdContainer, 'demo', { + validate: (params: string) => params.trim().match(/^demo\s*(.*)$/), + render: (tokens: any[], idx: number) => { + // container 从开头到结尾把之间的token跑一遍,其中idx定位到具体的位置 + // 有此标记代表 ::: 开始 + if (tokens[idx].nesting === 1) { + let i = 1 + // 从 ::: 下一个token开始 + let token = tokens[idx + i] + + // 如果没有到结尾 + while (token.markup !== ':::') { + i++ + token = tokens[idx + i] + } + // 描述也执行md + return formatOpening() + } + return formatClosing() + }, + }) + + // md 处理过后的字符串含有 class 和 style ,需要再次处理给到 react + let content = mdLoader.render(body) + + content = content + .replace(/
    /g, '
    ') + .replace(/
    /g, '
    ') + .replace(/class=/g, 'className=') + .replace(/style="text-align:center"/g, 'style={{ textAlign: "center"}}') + .replace(/style="text-align:left"/g, 'style={{ textAlign: "left"}}') + .replace(/style="text-align:right"/g, 'style={{ textAlign: "right"}}') + .replace(/\(_blank\)/g, ` target="_blank">`) + + return formatModule(imports, content) +} + + +console.log('123', 123) + +module.exports = markdownLoader diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 777c3c80..22d57a04 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -32,6 +32,8 @@ if (docsConfig) { } } +console.log(`require.resolve('crd-markdown-loader')`, require.resolve('crd-markdown-loader')) + module.exports = { entry: {}, output: { @@ -75,9 +77,25 @@ module.exports = { ], }, { - test: /\.mdx?$/, - use: ['babel-loader', '@mdx-js/loader'], + test: /\.md$/, + use: [ + // { + // loader: `babel-loader!${path.join(__dirname, './mdloader.js')}`, + // }, + { + loader: require.resolve('crd-markdown-loader'), + }, + { + loader: require.resolve('babel-loader'), + // options: require('../../.babelrc'), // eslint-disable-line + }, + ], }, + // { + // test: /\.mdx?$/, + // use: ['babel-loader', '@mdx-js/loader'], + // include: [/\.cache\/md/], + // }, // “file-loader”确保这些资源由WebpackDevServer服务。 // 当您导入资源时,您将获得(虚拟)文件名。 // 在生产中,它们将被复制到`build`文件夹。 @@ -110,6 +128,8 @@ module.exports = { resolve: { fallback: { path: require.resolve('path-browserify'), + assert: false, + fs: false, }, }, } diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index dc032053..456aa303 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -2,6 +2,7 @@ import { useState, useEffect, useRef } from 'react' import cx from 'classnames' import ReactMarkdown from 'react-markdown' import hljs from 'highlight.js' +import { renderToString } from 'react-dom/server' import InlineCode from './InlineCode' import Link from './Link' import Loading from '../component/Loading' @@ -21,7 +22,7 @@ const formatPath = path => function Markdown({ props }) { const { type, relative } = props - const [markdownStr, setMarkdownStr] = useState('') + const [markdownStr, setMarkdownStr] = useState(null) const markdownWrapperRef = useRef(null) const renderMarkdown = () => { @@ -32,6 +33,7 @@ function Markdown({ props }) { filename = formatPath(relativeMd) } import(`__project_root__/.cache/md/${filename}.md`).then((data) => { + console.log('data', data) setMarkdownStr(data.default || data) }) } @@ -40,54 +42,30 @@ function Markdown({ props }) { renderMarkdown() }, []) - useEffect(() => { - const code = markdownWrapperRef.current.getElementsByTagName('code') - for (let i = 0; i < code.length; i += 1) { - if (code[i].parentNode && code[i].parentNode.tagName === 'PRE') { - hljs.highlightBlock(code[i]) - } - } - }, [markdownStr]) + // useEffect(() => { + // const code = markdownWrapperRef.current.getElementsByTagName('code') + // for (let i = 0; i < code.length; i += 1) { + // if (code[i].parentNode && code[i].parentNode.tagName === 'PRE') { + // hljs.highlightBlock(code[i]) + // } + // } + // }, [markdownStr]) console.log('markdownStr', markdownStr) return (
    {markdownStr ? ( - { - // if (node.type === 'html') { - // // if (//.test(node.value)) return false; - // // const scriptValue = node.value.match(/(.*?)<\/script>/ig); - // // node.value.replace(/(.*?)<\/script>/, (te) => { - // // console.log('te:', te); - // // }); - // } - // // 判断 上一个节点是否为 - // if ( - // node.type === 'code' && - // parent.children && - // parent.children.length > 0 && - // parent.children[index - 1] - // ) { - // const parentNode = parent.children[index - 1] - // if ( - // parentNode.type === 'html' && - // //.test(parentNode.value) - // ) { - // node.value = `__dome__${node.value}` - // } - // } - // return node - // }} - /> + // +
    123
    ) : ( )} diff --git a/yarn.lock b/yarn.lock index f1d3ca23..6f9d9e10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,40 +33,11 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - "@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9" integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg== -"@babel/core@7.12.9": - version "7.12.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" - integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.7" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.9" - "@babel/types" "^7.12.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/core@^7.3.4": version "7.12.3" resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" @@ -109,15 +80,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.14.2": - version "7.14.3" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" - integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== - dependencies: - "@babel/types" "^7.14.2" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -214,15 +176,6 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-function-name@^7.14.2": - version "7.14.2" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" - integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.14.2" - "@babel/helper-get-function-arity@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" @@ -237,13 +190,6 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" @@ -287,7 +233,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== @@ -346,23 +292,11 @@ dependencies: "@babel/types" "^7.11.0" -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helper-validator-identifier@^7.14.0": - version "7.14.0" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" - integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== - "@babel/helper-validator-option@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" @@ -387,15 +321,6 @@ "@babel/traverse" "^7.12.5" "@babel/types" "^7.12.5" -"@babel/helpers@^7.12.5": - version "7.14.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" - integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" @@ -414,25 +339,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.12.13": - version "7.14.0" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" - integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/parser@^7.10.4", "@babel/parser@^7.12.3", "@babel/parser@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== -"@babel/parser@^7.12.13", "@babel/parser@^7.12.7", "@babel/parser@^7.14.2": - version "7.14.4" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" - integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== - "@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" @@ -498,7 +409,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.1": +"@babel/plugin-proposal-object-rest-spread@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== @@ -575,7 +486,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@7.12.1", "@babel/plugin-syntax-jsx@^7.12.1": +"@babel/plugin-syntax-jsx@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== @@ -603,7 +514,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -1077,15 +988,6 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/template@^7.12.13", "@babel/template@^7.12.7": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" @@ -1117,20 +1019,6 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.12.9", "@babel/traverse@^7.14.0": - version "7.14.2" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" - integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.2" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.14.2" - "@babel/types" "^7.14.2" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" @@ -1149,14 +1037,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.12.13", "@babel/types@^7.12.7", "@babel/types@^7.14.0", "@babel/types@^7.14.2": - version "7.14.4" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0" - integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - to-fast-properties "^2.0.0" - "@eslint/eslintrc@^0.2.1": version "0.2.1" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" @@ -1955,50 +1835,6 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" -"@mdx-js/loader@^1.6.22": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" - integrity sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q== - dependencies: - "@mdx-js/mdx" "1.6.22" - "@mdx-js/react" "1.6.22" - loader-utils "2.0.0" - -"@mdx-js/mdx@1.6.22": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" - integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== - dependencies: - "@babel/core" "7.12.9" - "@babel/plugin-syntax-jsx" "7.12.1" - "@babel/plugin-syntax-object-rest-spread" "7.8.3" - "@mdx-js/util" "1.6.22" - babel-plugin-apply-mdx-type-prop "1.6.22" - babel-plugin-extract-import-names "1.6.22" - camelcase-css "2.0.1" - detab "2.0.4" - hast-util-raw "6.0.1" - lodash.uniq "4.5.0" - mdast-util-to-hast "10.0.1" - remark-footnotes "2.0.0" - remark-mdx "1.6.22" - remark-parse "8.0.3" - remark-squeeze-paragraphs "4.0.0" - style-to-object "0.3.0" - unified "9.2.0" - unist-builder "2.0.3" - unist-util-visit "2.0.3" - -"@mdx-js/react@1.6.22": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" - integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== - -"@mdx-js/util@1.6.22": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" - integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== - "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -2201,13 +2037,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/hast@^2.0.0": - version "2.3.1" - resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" - integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q== - dependencies: - "@types/unist" "*" - "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" @@ -2223,13 +2052,6 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/mdast@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" - integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== - dependencies: - "@types/unist" "*" - "@types/minimatch@*": version "3.0.3" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -2250,11 +2072,6 @@ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== -"@types/parse5@^5.0.0": - version "5.0.3" - resolved "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" - integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== - "@types/puppeteer@^2.0.0": version "2.1.5" resolved "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-2.1.5.tgz#9137aa87dca21450820bfd6fa4fe747bc8176381" @@ -2284,11 +2101,6 @@ dependencies: source-map "^0.6.1" -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" - integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== - "@types/webpack-sources@*": version "2.1.0" resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" @@ -2725,6 +2537,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + aria-query@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" @@ -2963,14 +2780,6 @@ babel-loader@^8.0.5: pify "^4.0.1" schema-utils "^2.6.5" -babel-plugin-apply-mdx-type-prop@1.6.22: - version "1.6.22" - resolved "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" - integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - "@mdx-js/util" "1.6.22" - babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -2978,13 +2787,6 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-extract-import-names@1.6.22: - version "1.6.22" - resolved "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" - integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== - dependencies: - "@babel/helper-plugin-utils" "7.10.4" - babylon@7.0.0-beta.44: version "7.0.0-beta.44" resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" @@ -3346,11 +3148,6 @@ camel-case@^4.1.1: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase-css@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -3417,26 +3214,16 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: resolved "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001156.tgz#279f2188d3f7a29313ec0e7e9efb600ca9c61418" integrity sha512-L9vmkUDqH5QWgnB3RUukW1B5P6Vvkf44pjvaoPOUbIkchkUsq+vwXjzjQl9Hw3Ri8xS3XJmfm3H0UGyTx+s+Rg== -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001173: - version "1.0.30001173" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56" - integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== - -caniuse-lite@^1.0.30001154: - version "1.0.30001156" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz#75c20937b6012fe2b02ab58b30d475bf0718de97" - integrity sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001154, caniuse-lite@^1.0.30001173: + version "1.0.30001234" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001234.tgz" + integrity sha512-a3gjUVKkmwLdNysa1xkUAwN2VfJUJyVW47rsi3aCbkRCtbHAfo+rOsCqVw29G6coQ8gzAPb5XBXwiGHwme3isA== caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" - integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== - chalk@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3787,11 +3574,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - commander@2.15.1: version "2.15.1" resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" @@ -4571,13 +4353,6 @@ destroy@~1.0.4: resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detab@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== - dependencies: - repeat-string "^1.5.4" - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -4840,7 +4615,7 @@ entities@^1.1.1: resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@^2.0.0: +entities@^2.0.0, entities@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== @@ -5718,6 +5493,13 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +front-matter@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5" + integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== + dependencies: + js-yaml "^3.13.1" + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -6162,74 +5944,6 @@ has@^1.0.0, has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" -hast-to-hyperscript@^9.0.0: - version "9.0.1" - resolved "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" - integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== - dependencies: - "@types/unist" "^2.0.3" - comma-separated-tokens "^1.0.0" - property-information "^5.3.0" - space-separated-tokens "^1.0.0" - style-to-object "^0.3.0" - unist-util-is "^4.0.0" - web-namespaces "^1.0.0" - -hast-util-from-parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" - integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== - dependencies: - "@types/parse5" "^5.0.0" - hastscript "^6.0.0" - property-information "^5.0.0" - vfile "^4.0.0" - vfile-location "^3.2.0" - web-namespaces "^1.0.0" - -hast-util-parse-selector@^2.0.0: - version "2.2.5" - resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== - -hast-util-raw@6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" - integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== - dependencies: - "@types/hast" "^2.0.0" - hast-util-from-parse5 "^6.0.0" - hast-util-to-parse5 "^6.0.0" - html-void-elements "^1.0.0" - parse5 "^6.0.0" - unist-util-position "^3.0.0" - vfile "^4.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hast-util-to-parse5@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" - integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== - dependencies: - hast-to-hyperscript "^9.0.0" - property-information "^5.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hastscript@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" - integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== - dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -6240,10 +5954,10 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^10.5.0: - version "10.5.0" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" - integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw== +highlight.js@^11.0.1: + version "11.0.1" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.0.1.tgz#a78bafccd9aa297978799fe5eed9beb7ee1ef887" + integrity sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ== history@^4.7.2: version "4.10.1" @@ -6337,11 +6051,6 @@ html-minifier@^4.0.0: relateurl "^0.2.7" uglify-js "^3.5.1" -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" - integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== - html-webpack-plugin@^4.5.1: version "4.5.1" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz#40aaf1b5cb78f2f23a83333999625c20929cda65" @@ -6658,11 +6367,6 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== - inquirer@^3.0.6: version "3.3.0" resolved "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -6789,7 +6493,7 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-alphabetical@1.0.4, is-alphabetical@^1.0.0: +is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== @@ -6836,11 +6540,6 @@ is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" @@ -7033,11 +6732,6 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -7452,6 +7146,13 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= +linkify-it@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" + integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== + dependencies: + uc.micro "^1.0.1" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -7499,15 +7200,6 @@ loader-runner@^4.2.0: resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@2.0.0, loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" @@ -7517,6 +7209,15 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4 emojis-list "^3.0.0" json5 "^1.0.1" +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + loading-cli@^1.0.6: version "1.1.0" resolved "https://registry.npmjs.org/loading-cli/-/loading-cli-1.1.0.tgz#3457edaa3290439ad0061755174363a8091d56bc" @@ -7614,7 +7315,7 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.uniq@4.5.0, lodash.uniq@^4.5.0: +lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -7761,6 +7462,22 @@ markdown-escapes@^1.0.0: resolved "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== +markdown-it-container@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b" + integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw== + +markdown-it@^12.0.6: + version "12.0.6" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-12.0.6.tgz#adcc8e5fe020af292ccbdf161fe84f1961516138" + integrity sha512-qv3sVLl4lMT96LLtR7xeRJX11OUFjsaD5oVat2/SNBIb21bJXwal2+SklcRbTwGwqWpWH/HRtYavOoJE+seL8w== + dependencies: + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + math-expression-evaluator@^1.2.14: version "1.2.22" resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" @@ -7788,34 +7505,6 @@ mdast-add-list-metadata@1.0.1: dependencies: unist-util-visit-parents "1.1.2" -mdast-squeeze-paragraphs@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" - integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== - dependencies: - unist-util-remove "^2.0.0" - -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== - dependencies: - unist-util-visit "^2.0.0" - -mdast-util-to-hast@10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" - integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" - mdurl "^1.0.0" - unist-builder "^2.0.0" - unist-util-generated "^1.0.0" - unist-util-position "^3.0.0" - unist-util-visit "^2.0.0" - mdn-data@2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" @@ -7826,7 +7515,7 @@ mdn-data@2.0.4: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdurl@^1.0.0: +mdurl@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= @@ -8926,18 +8615,6 @@ parse-entities@^1.1.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" @@ -8986,11 +8663,6 @@ parse-url@^5.0.0: parse-path "^4.0.0" protocols "^1.4.0" -parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -9846,13 +9518,6 @@ prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" -property-information@^5.0.0, property-information@^5.3.0: - version "5.6.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" - integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== - dependencies: - xtend "^4.0.0" - proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -10439,47 +10104,6 @@ relateurl@^0.2.7: resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -remark-footnotes@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" - integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== - -remark-mdx@1.6.22: - version "1.6.22" - resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" - integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== - dependencies: - "@babel/core" "7.12.9" - "@babel/helper-plugin-utils" "7.10.4" - "@babel/plugin-proposal-object-rest-spread" "7.12.1" - "@babel/plugin-syntax-jsx" "7.12.1" - "@mdx-js/util" "1.6.22" - is-alphabetical "1.0.4" - remark-parse "8.0.3" - unified "9.2.0" - -remark-parse@8.0.3: - version "8.0.3" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== - dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" - remark-parse@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" @@ -10501,13 +10125,6 @@ remark-parse@^5.0.0: vfile-location "^2.0.0" xtend "^4.0.1" -remark-squeeze-paragraphs@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" - integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== - dependencies: - mdast-squeeze-paragraphs "^4.0.0" - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -11164,11 +10781,6 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -11521,13 +11133,6 @@ style-loader@^0.19.1: loader-utils "^1.0.2" schema-utils "^0.3.0" -style-to-object@0.3.0, style-to-object@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" - integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== - dependencies: - inline-style-parser "0.1.1" - stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -11994,6 +11599,11 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + uglify-js@^3.1.4: version "3.11.5" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.5.tgz#d6788bc83cf35ff18ea78a65763e480803409bc6" @@ -12053,18 +11663,6 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== -unified@9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - unified@^6.1.5: version "6.2.0" resolved "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" @@ -12111,31 +11709,11 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unist-builder@2.0.3, unist-builder@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" - integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== - unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - -unist-util-position@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== - unist-util-remove-position@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" @@ -12143,32 +11721,11 @@ unist-util-remove-position@^1.0.0: dependencies: unist-util-visit "^1.1.0" -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== - dependencies: - unist-util-visit "^2.0.0" - -unist-util-remove@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" - integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== - dependencies: - unist-util-is "^4.0.0" - unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - unist-util-visit-parents@1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" @@ -12181,23 +11738,6 @@ unist-util-visit-parents@^2.0.0: dependencies: unist-util-is "^3.0.0" -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@2.0.3, unist-util-visit@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: version "1.4.1" resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" @@ -12386,11 +11926,6 @@ vfile-location@^2.0.0: resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== -vfile-location@^3.0.0, vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== - vfile-message@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" @@ -12398,14 +11933,6 @@ vfile-message@^1.0.0: dependencies: unist-util-stringify-position "^1.1.1" -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" @@ -12416,16 +11943,6 @@ vfile@^2.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - warning@^4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" @@ -12455,11 +11972,6 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-namespaces@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" - integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== - webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -12870,8 +12382,3 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== From 926d47ed0f6eddb790fef95edaaf9c5828fbb0ad Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 5 Jun 2021 21:44:01 +0800 Subject: [PATCH 228/352] feat: support write cp in md --- ...30\350\256\244\344\270\273\351\242\230.md" | 37 -- packages/crd-markdown-loader/index.js | 7 +- packages/scripts/package.json | 2 +- packages/scripts/src/conf/mdloader.js | 131 ---- .../scripts/src/conf/modifyMarkdownLoader.js | 24 + packages/scripts/src/conf/webpack.config.js | 49 +- packages/theme/markdown/index.js | 50 +- packages/theme/package.json | 1 + yarn.lock | 567 +++++++++++++++++- 9 files changed, 629 insertions(+), 239 deletions(-) delete mode 100644 packages/scripts/src/conf/mdloader.js create mode 100644 packages/scripts/src/conf/modifyMarkdownLoader.js diff --git "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 84394647..a7f83148 100644 --- "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -1,39 +1,2 @@ ## 默认主题 -create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题有以下特性: - -* 适配移动、PC 多端展示。 -* 支持暗黑模式。 -* 文档支持内嵌 codepen、codesandbox。 -* GitHub 联动。 - -使用该主题搭建的项目有: - -* [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) - * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) - * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) -* [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) - -> 如果您有其它的改进优化想法, 欢迎
    留言补充 - -## config.yml - -[config.yml](https://github.com/MuYunyun/create-react-doc/blob/main/packages/templates/default/_config.yml) 文件是配置站点主题功能的地方。 - -它支持配置的属性如下: - -| 属性名 | 作用 | 类型 | 默认 | -| :------------: | :----------------------------------: | :------------------: | :------: | -| title | 站点名 | string | | -| menu | 作为站点菜单的文件/文件夹路径 | string[] | | -| menuOpenKeys | 默认展开菜单的文件夹路径 | string | | -| user | Github 用户名 | string | | -| repo | Github 项目名 | string | | -| language | 站点语言 | en \| zh-cn | en | -| github-ribbons | 是否在右上角显示 github 丝带 | boolean | false | -| theme | 使用主题 | string | crd-seed | -| devTheme | 开发自定义主题时, 需设置其为 true | string | ./index | -| seo | 是否开启 SEO 优化 | { google?: boolean } | | -| domain | SEO 优化的站点域名, 用于生成 sitemap | string | | - -详细用法可以参考 [config.yml](https://github.com/MuYunyun/blog/blob/main/config.yml)。 \ No newline at end of file diff --git a/packages/crd-markdown-loader/index.js b/packages/crd-markdown-loader/index.js index 45cb4556..38333938 100644 --- a/packages/crd-markdown-loader/index.js +++ b/packages/crd-markdown-loader/index.js @@ -81,7 +81,8 @@ const formatOpening = () => const formatClosing = () => `
    ` -function markdownLoader(source: any) { +module.exports = function (source: any) { + console.log('✅✅✅✅✅source') const { body, attributes: { imports: importMap }, @@ -124,7 +125,5 @@ function markdownLoader(source: any) { .replace(/\(_blank\)/g, ` target="_blank">`) - return formatModule(imports, content) + return `module.exports = ${formatModule(imports, content)}` } - -module.exports = markdownLoader diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 5952fef9..786bd5ca 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -15,6 +15,7 @@ "@babel/preset-env": "^7.3.4", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.3.4", + "@mdx-js/loader": "^1.6.22", "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2", "babel-eslint": "^8.0.1", "babel-loader": "^8.0.5", @@ -49,7 +50,6 @@ "postcss-flexbugs-fixes": "^3.3.1", "postcss-loader": "^2.0.9", "process": "^0.11.10", - "raw-content-replace-loader": "^1.0.1", "rimraf": "^2.6.2", "string-replace-loader": "^3.0.1", "style-loader": "^0.19.1", diff --git a/packages/scripts/src/conf/mdloader.js b/packages/scripts/src/conf/mdloader.js deleted file mode 100644 index c7a3caa0..00000000 --- a/packages/scripts/src/conf/mdloader.js +++ /dev/null @@ -1,131 +0,0 @@ -import highlight from 'highlight.js' -import frontMatter from 'front-matter' -import mdContainer from 'markdown-it-container' -import md from 'markdown-it' - -const options = { - className: 'wrap', -} - -const mdLoader = md({ - html: true, // Enable HTML tags in source - xhtmlOut: true, // Use '/' to close single tags (
    ) - typographer: false, - linkify: false, // Auto convert URL-like text to links -}) - .enable(['smartquotes']) - .set({ - highlight(content: any, languageHint: any) { - let highlightedContent = null - - highlight.configure({ - useBR: true, - tabReplace: ' ', - }) - - if (languageHint && highlight.getLanguage(languageHint)) { - try { - highlightedContent = highlight.highlight(languageHint, content).value - } catch (err) { - console.log(err) - } - } - - if (!highlightedContent) { - try { - highlightedContent = highlight.highlightAuto(content).value - } catch (err) { - console.log(err) - } - } - - // 把代码中的{}转 - highlightedContent = highlightedContent.replace( - /[{}]/g, - (match: string) => `{'${match}'}`, - ) - // 加上 highlight js - highlightedContent = highlightedContent - .replace('', '') - - return highlight.fixMarkup(highlightedContent) - }, - }) - -/** at-component-docs__container 用于做除 demo 和 table 之外的公共样式 */ -const formatModule = (imports: string, jsx: string) => { - const moduleText = ` - ${imports} - - export default class extends React.Component { - render(){ - return ( -
    -
    - ${jsx} -
    -
    - ); - } - };` - return moduleText -} - -const formatOpening = () => - `
    -
    -
    ` -const formatClosing = () => - `
    ` - -function markdownLoader(source: any) { - const { - body, - attributes: { imports: importMap }, - } = frontMatter(source) - const imports = `import * as React from 'react';${importMap}` - - /* 处理 :::demo 开头的 markdown 内容 */ - mdLoader.use(mdContainer, 'demo', { - validate: (params: string) => params.trim().match(/^demo\s*(.*)$/), - render: (tokens: any[], idx: number) => { - // container 从开头到结尾把之间的token跑一遍,其中idx定位到具体的位置 - // 有此标记代表 ::: 开始 - if (tokens[idx].nesting === 1) { - let i = 1 - // 从 ::: 下一个token开始 - let token = tokens[idx + i] - - // 如果没有到结尾 - while (token.markup !== ':::') { - i++ - token = tokens[idx + i] - } - // 描述也执行md - return formatOpening() - } - return formatClosing() - }, - }) - - // md 处理过后的字符串含有 class 和 style ,需要再次处理给到 react - let content = mdLoader.render(body) - - content = content - .replace(/
    /g, '
    ') - .replace(/
    /g, '
    ') - .replace(/class=/g, 'className=') - .replace(/style="text-align:center"/g, 'style={{ textAlign: "center"}}') - .replace(/style="text-align:left"/g, 'style={{ textAlign: "left"}}') - .replace(/style="text-align:right"/g, 'style={{ textAlign: "right"}}') - .replace(/\(_blank\)/g, ` target="_blank">`) - - return formatModule(imports, content) -} - - -console.log('123', 123) - -module.exports = markdownLoader diff --git a/packages/scripts/src/conf/modifyMarkdownLoader.js b/packages/scripts/src/conf/modifyMarkdownLoader.js new file mode 100644 index 00000000..7d2333bd --- /dev/null +++ b/packages/scripts/src/conf/modifyMarkdownLoader.js @@ -0,0 +1,24 @@ +/** + * this webpack plugin is to modify markdown position. + */ +const loaderUtils = require('loader-utils') +const PATH = require('path') +const FS = require('fs') + +module.exports = function (source) { + const options = loaderUtils.getOptions(this) || {} + const { replace, sep, path, include, extensions } = options + let content = '' + + let fpath = this.resourcePath.replace(sep || /___/g, PATH.sep) + if (path && replace && (!include || include.test(fpath))) { + fpath = fpath.replace(path, replace) + this.addDependency(fpath) + } + + if (FS.existsSync(fpath)) { + content = FS.readFileSync(fpath) + } + // content = JSON.stringify(content).replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029'); + return content +} diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 22d57a04..5f2adc00 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -32,8 +32,6 @@ if (docsConfig) { } } -console.log(`require.resolve('crd-markdown-loader')`, require.resolve('crd-markdown-loader')) - module.exports = { entry: {}, output: { @@ -65,9 +63,19 @@ module.exports = { { test: /\.md$/, use: [ + // { + // loader: require.resolve('crd-markdown-loader'), + // }, + // 'crd-markdown-loader', + // 'babel-loader' { - // https://github.com/react-doc/raw-content-replace-loader/blob/master/index.js - loader: require.resolve('raw-content-replace-loader'), + loader: require.resolve('babel-loader'), + options: require('../../.babelrc'), // eslint-disable-line + }, + '@mdx-js/loader', + // 'crd-markdown-loader', + { + loader: `${path.join(__dirname, './modifyMarkdownLoader.js')}`, options: { path: path.join(cacheDirPath, './md'), // dir need to replace replace: paths.projectPath, // the dir to replace @@ -76,25 +84,20 @@ module.exports = { }, ], }, - { - test: /\.md$/, - use: [ - // { - // loader: `babel-loader!${path.join(__dirname, './mdloader.js')}`, - // }, - { - loader: require.resolve('crd-markdown-loader'), - }, - { - loader: require.resolve('babel-loader'), - // options: require('../../.babelrc'), // eslint-disable-line - }, - ], - }, // { - // test: /\.mdx?$/, - // use: ['babel-loader', '@mdx-js/loader'], - // include: [/\.cache\/md/], + // test: /\.md$/, + // use: [ + // // { + // // loader: `babel-loader!${path.join(__dirname, './mdloader.js')}`, + // // }, + // { + // loader: require.resolve('crd-markdown-loader'), + // }, + // { + // loader: require.resolve('babel-loader'), + // options: require('../../.babelrc'), // eslint-disable-line + // }, + // ], // }, // “file-loader”确保这些资源由WebpackDevServer服务。 // 当您导入资源时,您将获得(虚拟)文件名。 @@ -128,8 +131,6 @@ module.exports = { resolve: { fallback: { path: require.resolve('path-browserify'), - assert: false, - fs: false, }, }, } diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index 456aa303..cf795373 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -3,10 +3,14 @@ import cx from 'classnames' import ReactMarkdown from 'react-markdown' import hljs from 'highlight.js' import { renderToString } from 'react-dom/server' +import { MDXProvider } from '@mdx-js/react' import InlineCode from './InlineCode' import Link from './Link' import Loading from '../component/Loading' import styles from './style/index.less' +// import A from '../../../.cache/md/docs___快速上手.md' + +// console.log('abcde', a) hljs.configure({ tabReplace: ' ', // 2 spaces @@ -22,7 +26,7 @@ const formatPath = path => function Markdown({ props }) { const { type, relative } = props - const [markdownStr, setMarkdownStr] = useState(null) + const [MarkdownCP, setMarkdownCP] = useState(null) const markdownWrapperRef = useRef(null) const renderMarkdown = () => { @@ -33,8 +37,8 @@ function Markdown({ props }) { filename = formatPath(relativeMd) } import(`__project_root__/.cache/md/${filename}.md`).then((data) => { - console.log('data', data) - setMarkdownStr(data.default || data) + // data.default is a function, so we should write () => data.default in setState here. + setMarkdownCP(() => (data.default || data)) }) } @@ -51,24 +55,32 @@ function Markdown({ props }) { // } // }, [markdownStr]) - console.log('markdownStr', markdownStr) + // console.log('markdownStr', markdownStr) + // { /* {markdownStr ? ( + // // + //
    123
    + // ) : ( + // + // )} */ } return (
    - {markdownStr ? ( - // -
    123
    - ) : ( - - )} + { + MarkdownCP + ? + + + + : + }
    ) } diff --git a/packages/theme/package.json b/packages/theme/package.json index 12227832..51995b7d 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -4,6 +4,7 @@ "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { + "@mdx-js/react": "^1.6.22", "classnames": "^2.2.6", "diana": "^1.0.2", "less": "^3.0.2", diff --git a/yarn.lock b/yarn.lock index 6f9d9e10..6f1a6e9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,11 +33,40 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + "@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9" integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg== +"@babel/core@7.12.9": + version "7.12.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/core@^7.3.4": version "7.12.3" resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" @@ -80,6 +109,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.14.2": + version "7.14.3" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== + dependencies: + "@babel/types" "^7.14.2" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -176,6 +214,15 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" +"@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.14.2" + "@babel/helper-get-function-arity@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" @@ -190,6 +237,13 @@ dependencies: "@babel/types" "^7.10.4" +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" @@ -233,7 +287,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== @@ -292,11 +346,23 @@ dependencies: "@babel/types" "^7.11.0" +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + "@babel/helper-validator-option@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" @@ -321,6 +387,15 @@ "@babel/traverse" "^7.12.5" "@babel/types" "^7.12.5" +"@babel/helpers@^7.12.5": + version "7.14.0" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" + "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" @@ -339,11 +414,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.12.13": + version "7.14.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.10.4", "@babel/parser@^7.12.3", "@babel/parser@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== +"@babel/parser@^7.12.13", "@babel/parser@^7.12.7", "@babel/parser@^7.14.2": + version "7.14.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" + integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== + "@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" @@ -409,7 +498,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.12.1": +"@babel/plugin-proposal-object-rest-spread@7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== @@ -486,7 +575,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.12.1": +"@babel/plugin-syntax-jsx@7.12.1", "@babel/plugin-syntax-jsx@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== @@ -514,7 +603,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -988,6 +1077,15 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" +"@babel/template@^7.12.13", "@babel/template@^7.12.7": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" @@ -1019,6 +1117,20 @@ globals "^11.1.0" lodash "^4.17.19" +"@babel/traverse@^7.12.9", "@babel/traverse@^7.14.0": + version "7.14.2" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" @@ -1037,6 +1149,14 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.12.13", "@babel/types@^7.12.7", "@babel/types@^7.14.0", "@babel/types@^7.14.2": + version "7.14.4" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0" + integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + to-fast-properties "^2.0.0" + "@eslint/eslintrc@^0.2.1": version "0.2.1" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" @@ -1835,6 +1955,50 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" +"@mdx-js/loader@^1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" + integrity sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q== + dependencies: + "@mdx-js/mdx" "1.6.22" + "@mdx-js/react" "1.6.22" + loader-utils "2.0.0" + +"@mdx-js/mdx@1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" + integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== + dependencies: + "@babel/core" "7.12.9" + "@babel/plugin-syntax-jsx" "7.12.1" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@mdx-js/util" "1.6.22" + babel-plugin-apply-mdx-type-prop "1.6.22" + babel-plugin-extract-import-names "1.6.22" + camelcase-css "2.0.1" + detab "2.0.4" + hast-util-raw "6.0.1" + lodash.uniq "4.5.0" + mdast-util-to-hast "10.0.1" + remark-footnotes "2.0.0" + remark-mdx "1.6.22" + remark-parse "8.0.3" + remark-squeeze-paragraphs "4.0.0" + style-to-object "0.3.0" + unified "9.2.0" + unist-builder "2.0.3" + unist-util-visit "2.0.3" + +"@mdx-js/react@1.6.22", "@mdx-js/react@^1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" + integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== + +"@mdx-js/util@1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" + integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -2037,6 +2201,13 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/hast@^2.0.0": + version "2.3.1" + resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" + integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q== + dependencies: + "@types/unist" "*" + "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" @@ -2052,6 +2223,13 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/mdast@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== + dependencies: + "@types/unist" "*" + "@types/minimatch@*": version "3.0.3" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -2072,6 +2250,11 @@ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + "@types/puppeteer@^2.0.0": version "2.1.5" resolved "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-2.1.5.tgz#9137aa87dca21450820bfd6fa4fe747bc8176381" @@ -2101,6 +2284,11 @@ dependencies: source-map "^0.6.1" +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + "@types/webpack-sources@*": version "2.1.0" resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" @@ -2780,6 +2968,14 @@ babel-loader@^8.0.5: pify "^4.0.1" schema-utils "^2.6.5" +babel-plugin-apply-mdx-type-prop@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" + integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + "@mdx-js/util" "1.6.22" + babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -2787,6 +2983,13 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" +babel-plugin-extract-import-names@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" + integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + babylon@7.0.0-beta.44: version "7.0.0-beta.44" resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" @@ -3148,6 +3351,11 @@ camel-case@^4.1.1: pascal-case "^3.1.2" tslib "^2.0.3" +camelcase-css@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -3224,6 +3432,11 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + chalk@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3574,6 +3787,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + commander@2.15.1: version "2.15.1" resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" @@ -4353,6 +4571,13 @@ destroy@~1.0.4: resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detab@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" + integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== + dependencies: + repeat-string "^1.5.4" + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -5944,6 +6169,74 @@ has@^1.0.0, has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hast-util-raw@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" + integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -6051,6 +6344,11 @@ html-minifier@^4.0.0: relateurl "^0.2.7" uglify-js "^3.5.1" +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + html-webpack-plugin@^4.5.1: version "4.5.1" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz#40aaf1b5cb78f2f23a83333999625c20929cda65" @@ -6367,6 +6665,11 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@^3.0.6: version "3.3.0" resolved "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -6493,7 +6796,7 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-alphabetical@^1.0.0: +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== @@ -6540,6 +6843,11 @@ is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" @@ -6732,6 +7040,11 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -7200,6 +7513,15 @@ loader-runner@^4.2.0: resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" @@ -7209,15 +7531,6 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4 emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - loading-cli@^1.0.6: version "1.1.0" resolved "https://registry.npmjs.org/loading-cli/-/loading-cli-1.1.0.tgz#3457edaa3290439ad0061755174363a8091d56bc" @@ -7315,7 +7628,7 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.uniq@^4.5.0: +lodash.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -7505,6 +7818,34 @@ mdast-add-list-metadata@1.0.1: dependencies: unist-util-visit-parents "1.1.2" +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-to-hast@10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" + integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" @@ -7515,7 +7856,7 @@ mdn-data@2.0.4: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdurl@^1.0.1: +mdurl@^1.0.0, mdurl@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= @@ -8615,6 +8956,18 @@ parse-entities@^1.1.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" @@ -8663,6 +9016,11 @@ parse-url@^5.0.0: parse-path "^4.0.0" protocols "^1.4.0" +parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -9518,6 +9876,13 @@ prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +property-information@^5.0.0, property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -9730,13 +10095,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -raw-content-replace-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/raw-content-replace-loader/-/raw-content-replace-loader-1.0.1.tgz#a89cdd574acef724a9bc986768a0e74ca87b1ce7" - integrity sha512-ZPqeRwfgvYuBRZDKgsUNwFvcOOomWCkCcYRm9EppWMi6bFB1ofoFuE1ueGQIrdnvZ2z1RlIFsmVe9KzdpaKXig== - dependencies: - loader-utils "^1.1.0" - react-dom@^17.0.1: version "17.0.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" @@ -10104,6 +10462,47 @@ relateurl@^0.2.7: resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +remark-footnotes@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" + integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== + +remark-mdx@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" + integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== + dependencies: + "@babel/core" "7.12.9" + "@babel/helper-plugin-utils" "7.10.4" + "@babel/plugin-proposal-object-rest-spread" "7.12.1" + "@babel/plugin-syntax-jsx" "7.12.1" + "@mdx-js/util" "1.6.22" + is-alphabetical "1.0.4" + remark-parse "8.0.3" + unified "9.2.0" + +remark-parse@8.0.3: + version "8.0.3" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" + integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + remark-parse@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" @@ -10125,6 +10524,13 @@ remark-parse@^5.0.0: vfile-location "^2.0.0" xtend "^4.0.1" +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -10781,6 +11187,11 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -11133,6 +11544,13 @@ style-loader@^0.19.1: loader-utils "^1.0.2" schema-utils "^0.3.0" +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -11663,6 +12081,18 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unified@9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + unified@^6.1.5: version "6.2.0" resolved "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" @@ -11709,11 +12139,31 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + unist-util-remove-position@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" @@ -11721,11 +12171,32 @@ unist-util-remove-position@^1.0.0: dependencies: unist-util-visit "^1.1.0" +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" + integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== + dependencies: + unist-util-is "^4.0.0" + unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + unist-util-visit-parents@1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" @@ -11738,6 +12209,23 @@ unist-util-visit-parents@^2.0.0: dependencies: unist-util-is "^3.0.0" +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@2.0.3, unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: version "1.4.1" resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" @@ -11926,6 +12414,11 @@ vfile-location@^2.0.0: resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== +vfile-location@^3.0.0, vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + vfile-message@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" @@ -11933,6 +12426,14 @@ vfile-message@^1.0.0: dependencies: unist-util-stringify-position "^1.1.1" +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" @@ -11943,6 +12444,16 @@ vfile@^2.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + warning@^4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" @@ -11972,6 +12483,11 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -12382,3 +12898,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== From c95ec56393d94bddc116268f27e250922f016d12 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 6 Jun 2021 13:53:43 +0800 Subject: [PATCH 229/352] feat: support write react in markdown --- README-en.md | 1 + README.md | 1 + ...46\345\206\231\347\273\204\344\273\266.md" | 10 +- ...30\351\230\266\347\224\250\346\263\225.md" | 46 ++++++ ...30\350\256\244\344\270\273\351\242\230.md" | 37 +++++ .../scripts/src/conf/modifyMarkdownLoader.js | 1 - packages/theme/markdown/InlineCode.js | 120 ++++++++------ packages/theme/markdown/codeBlock.js | 52 ++++++ packages/theme/markdown/index.js | 32 ++-- packages/theme/markdown/style/default.less | 152 ++++++++++++------ packages/theme/package.json | 1 + yarn.lock | 5 + 12 files changed, 335 insertions(+), 123 deletions(-) create mode 100644 packages/theme/markdown/codeBlock.js diff --git a/README-en.md b/README-en.md index dcbb455a..edf9e548 100644 --- a/README-en.md +++ b/README-en.md @@ -28,6 +28,7 @@ English | [简体中文](./README.md) * The idea of ​​building a site: Just write markdown files as a blog site [like me](https://github.com/MuYunyun/blog). * Out of box: One-click generation of documents and blog sites by specifying directories or documents, no need to care about site environment configuration information. * Performance: greatly improve site loading speed through pre-rendering and lazy loading. +* Based on mdx: Support writing React components, mathematical formulas, etc. in markdown. * Search engine optimization: Support SEO, making documents easier to search. Related documents: [SEO Practice in SPA Site](https://github.com/MuYunyun/blog/issues/84) * Personalization: Support [custom theme](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB% E9%A2%98). * Workflow: Integrate Github actions, support automated packaging and publishing sites. diff --git a/README.md b/README.md index ccacdea7..79f4657a 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ * 建站理念: 文件即站点 (Files as a Site)。 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 * 性能: 通过预渲染、懒加载大幅提升站点加载速度。 +* 基于 mdx: 支持在 markdown 中书写 React 组件、数学公式等。 * 搜索引擎优化: 支持 SEO, 让文档更易被搜索。相关文档: [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) * 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 diff --git "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" index 582bd8dd..208e5c3a 100644 --- "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" +++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" @@ -1,9 +1,9 @@ - - ## 书写组件 -create-react-doc 内置了 [mdx](https://github.com/mdx-js/mdx) 的能力, 你可以在 .md 文件中书写 React 组件。 +[create-react-doc](https://github.com/MuYunyun/create-react-doc) 内置了 [mdx](https://github.com/mdx-js/mdx), 你可以在 .md 文件中书写 React 组件, 因此你可以选择 create-react-doc 来快速搭建组件站点开发环境。 + +## 例子 -### 示意 +### Button 组件 - + diff --git "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" index b5e38364..5c172ec5 100644 --- "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" +++ "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" @@ -1,3 +1,49 @@ ## 高阶用法 与 git 文件结构类似, 如果在展示的文件夹中有私有文件不方便展示在文档站点, 可以在 `.gitignore` 文件中设置过滤文件, 这样它们就不会展示在文档站点中了。eg: [.gitignore](https://github.com/MuYunyun/blog/blob/main/.gitignore) + +## 数学公式 + +Todo: + +### 使用方式 + +在 `config.yml` 文件中加入 `inject` 字段。 + +```diff ++ inject: injectLogic/index.js +``` + +然后在根目录新建与 `inject` 字段相对应的文件, 声明 `injectWithPathname` 函数, 写入[自定义逻辑](https://github.com/MuYunyun/create-react-doc/injectLogic/index.js), 完成 MathJax 的使用。 + +```js +// perf injectWithPathname logic every pathname changes +const injectWithPathname = (pathname) => { + // demo for using mathjax. see https://github.com/MuYunyun/create-react-doc/issues/63 + if (pathname !== '/高阶用法') return; + window.MathJax = { + tex: { + inlineMath: [['$', '$'], ['\\(', '\\)']], + }, + svg: { + fontCache: 'global', + }, + }; + const script = document.createElement('script'); + script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js'; + const tag = 'mathjax'; + script.id = tag; + script.async = true; + const scriptNode = document.getElementById(tag); + try { + if (!scriptNode) { + document.head.appendChild(script); + } else { + scriptNode.remove(); + document.head.appendChild(script); + } + } catch (error) {} +}; + +module.exports = { injectWithPathname }; +``` \ No newline at end of file diff --git "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" index a7f83148..84394647 100644 --- "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -1,2 +1,39 @@ ## 默认主题 +create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题有以下特性: + +* 适配移动、PC 多端展示。 +* 支持暗黑模式。 +* 文档支持内嵌 codepen、codesandbox。 +* GitHub 联动。 + +使用该主题搭建的项目有: + +* [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) + * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) + * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) +* [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) + +> 如果您有其它的改进优化想法, 欢迎留言补充 + +## config.yml + +[config.yml](https://github.com/MuYunyun/create-react-doc/blob/main/packages/templates/default/_config.yml) 文件是配置站点主题功能的地方。 + +它支持配置的属性如下: + +| 属性名 | 作用 | 类型 | 默认 | +| :------------: | :----------------------------------: | :------------------: | :------: | +| title | 站点名 | string | | +| menu | 作为站点菜单的文件/文件夹路径 | string[] | | +| menuOpenKeys | 默认展开菜单的文件夹路径 | string | | +| user | Github 用户名 | string | | +| repo | Github 项目名 | string | | +| language | 站点语言 | en \| zh-cn | en | +| github-ribbons | 是否在右上角显示 github 丝带 | boolean | false | +| theme | 使用主题 | string | crd-seed | +| devTheme | 开发自定义主题时, 需设置其为 true | string | ./index | +| seo | 是否开启 SEO 优化 | { google?: boolean } | | +| domain | SEO 优化的站点域名, 用于生成 sitemap | string | | + +详细用法可以参考 [config.yml](https://github.com/MuYunyun/blog/blob/main/config.yml)。 \ No newline at end of file diff --git a/packages/scripts/src/conf/modifyMarkdownLoader.js b/packages/scripts/src/conf/modifyMarkdownLoader.js index 7d2333bd..9497693a 100644 --- a/packages/scripts/src/conf/modifyMarkdownLoader.js +++ b/packages/scripts/src/conf/modifyMarkdownLoader.js @@ -19,6 +19,5 @@ module.exports = function (source) { if (FS.existsSync(fpath)) { content = FS.readFileSync(fpath) } - // content = JSON.stringify(content).replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029'); return content } diff --git a/packages/theme/markdown/InlineCode.js b/packages/theme/markdown/InlineCode.js index 7c2d7c5a..f84e21f4 100644 --- a/packages/theme/markdown/InlineCode.js +++ b/packages/theme/markdown/InlineCode.js @@ -1,54 +1,74 @@ -import { PureComponent } from 'react' -import classNames from 'classnames' +// import classNames from 'classnames' +import React from 'react' +import Highlight, { defaultProps } from 'prism-react-renderer' import styles from './InlineCode.less' -export default class Canvas extends PureComponent { - constructor() { - super() - this.state = { - height: 0, - } - this.playerId = `${parseInt(Math.random() * 1e9, 10).toString(36)}` - } - onClick() { - this.setState({ - height: this.state.height === 0 ? this.codeDom.clientHeight : 0, - }) - } - render() { - const sourceCode = this.props.value || '' - // const code = sourceCode.replace(/^__dome__/, '').replace(/\\`/g, '`') - const code = sourceCode.replace(/\\`/g, '`') - const PreCode = height => ( -
    -         this.codeDom = node} className={classNames('hljs', { [`language-${this.props.language}`]: this.props.language })}>
    -          {code}
    -        
    -      
    - ) - // const isPreview = /^(html|htm)$/.test(this.props.language) +// export default class Canvas extends PureComponent { +// constructor() { +// super() +// this.state = { +// height: 0, +// } +// this.playerId = `${parseInt(Math.random() * 1e9, 10).toString(36)}` +// } +// onClick() { +// this.setState({ +// height: this.state.height === 0 ? this.codeDom.clientHeight : 0, +// }) +// } +// render() { +// const sourceCode = this.props.value || '' +// // const code = sourceCode.replace(/^__dome__/, '').replace(/\\`/g, '`') +// const code = sourceCode.replace(/\\`/g, '`') +// const PreCode = height => ( +//
    +//          this.codeDom = node} className={classNames('hljs', { [`language-${this.props.language}`]: this.props.language })}>
    +//           {code}
    +//         
    +//       
    +// ) +// // const isPreview = /^(html|htm)$/.test(this.props.language) - // if (/^__dome__/.test(sourceCode)) { - // return ( - //
    - // {isPreview && ( - //
    - //
    - //
    - // )} - // {PreCode(this.state.height)} - //
    - // {this.state.height === 0 ? '显示' : '隐藏'}代码 - // {this.props.language &&
    {this.props.language}
    } - //
    - //
    - // ) - // } - return PreCode() - } +// // if (/^__dome__/.test(sourceCode)) { +// // return ( +// //
    +// // {isPreview && ( +// //
    +// //
    +// //
    +// // )} +// // {PreCode(this.state.height)} +// //
    +// // {this.state.height === 0 ? '显示' : '隐藏'}代码 +// // {this.props.language &&
    {this.props.language}
    } +// //
    +// //
    +// // ) +// // } +// return PreCode() +// } +// } + +export default ({ children, className }) => { + const language = className.replace(/language-/, '') + return ( + + {({ className, style, tokens, getLineProps, getTokenProps }) => ( +
    +          {tokens.map((line, i) => (
    +            
    + {line.map((token, key) => ( + + ))} +
    + ))} +
    + )} +
    + ) } diff --git a/packages/theme/markdown/codeBlock.js b/packages/theme/markdown/codeBlock.js new file mode 100644 index 00000000..4e8c8a6f --- /dev/null +++ b/packages/theme/markdown/codeBlock.js @@ -0,0 +1,52 @@ +/** @jsxRuntime classic / +/* @jsx jsx */ +import Highlight, { defaultProps } from 'prism-react-renderer' +import nightOwlLight from 'prism-react-renderer/themes/nightOwlLight' +import { mdx } from '@mdx-js/react' +// import {LiveProvider, LiveEditor, LiveError, LivePreview} from 'react-live' + +export default ({ children, className, live, render }) => { + // const language = className.replace(/language-/, '') + + // if (live) { + // return ( + //
    + // '/** @jsx mdx */' + code} + // scope={{mdx}} + // > + // + // + // + // + //
    + // ) + // } + + // if (render) { + // return ( + //
    + // + // + // + //
    + // ) + // } + + return ( + + {({ className, style, tokens, getLineProps, getTokenProps }) => ( +
    +          {tokens.map((line, i) => (
    +            
    + {line.map((token, key) => ( + + ))} +
    + ))} +
    + )} +
    + ) +} diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index cf795373..06cf77ad 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -2,15 +2,12 @@ import { useState, useEffect, useRef } from 'react' import cx from 'classnames' import ReactMarkdown from 'react-markdown' import hljs from 'highlight.js' -import { renderToString } from 'react-dom/server' import { MDXProvider } from '@mdx-js/react' +import CodeBlock from './codeBlock' import InlineCode from './InlineCode' import Link from './Link' import Loading from '../component/Loading' import styles from './style/index.less' -// import A from '../../../.cache/md/docs___快速上手.md' - -// console.log('abcde', a) hljs.configure({ tabReplace: ' ', // 2 spaces @@ -24,6 +21,11 @@ const formatPath = path => .split('/') .join('___') +const components = { + code: CodeBlock, + link: Link, +} + function Markdown({ props }) { const { type, relative } = props const [MarkdownCP, setMarkdownCP] = useState(null) @@ -55,28 +57,14 @@ function Markdown({ props }) { // } // }, [markdownStr]) - // console.log('markdownStr', markdownStr) - // { /* {markdownStr ? ( - // // - //
    123
    - // ) : ( - // - // )} */ } return ( -
    +
    { MarkdownCP ? - + : diff --git a/packages/theme/markdown/style/default.less b/packages/theme/markdown/style/default.less index 037a4bbd..4e36f86b 100644 --- a/packages/theme/markdown/style/default.less +++ b/packages/theme/markdown/style/default.less @@ -1,15 +1,16 @@ - code { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; word-wrap: normal; } -code:not(.hljs){ + +code:not(.hljs) { padding: 0.2em 0.4em; margin: 0; font-size: 85%; background-color: rgba(27, 31, 35, 0.07); border-radius: 3px; } + code.hljs { padding: 16px; font-size: 95%; @@ -17,24 +18,31 @@ code.hljs { display: block; text-shadow: 0 1px #fff; } + pre { max-height: 35em; position: relative; overflow: auto; - background-color: #F0F0F0; + // background-color: #F0F0F0; + background-color: rgb(251, 251, 251); border-radius: 3px; } + pre code { background: none; font-size: 1em; overflow-wrap: normal; white-space: inherit; } -ul, ol { + +ul, +ol { padding-left: 2em; } + dl { padding: 0; + dt { padding: 0; margin-top: 16px; @@ -43,28 +51,35 @@ dl { font-weight: 600; } } -li + li { + +li+li { margin-top: 3px; } + a { color: #0366d6; } + p { margin-bottom: 16px; } + blockquote { margin: 0; padding: 0 1em; margin: 16px 0 16px 0; color: #6a737d; border-left: 0.25em solid #dfe2e5; - & >:first-child { + + &>:first-child { margin-top: 0; } - & >:last-child { + + &>:last-child { margin-bottom: 0; } } + hr { height: 0.25em; padding: 0; @@ -73,7 +88,18 @@ hr { border: 0; } -h1 tt,h1 code,h2 tt,h2 code,h3 tt,h3 code,h4 tt,h4 code,h5 tt,h5 code,h6 tt,h6 code { +h1 tt, +h1 code, +h2 tt, +h2 code, +h3 tt, +h3 code, +h4 tt, +h4 code, +h5 tt, +h5 code, +h6 tt, +h6 code { font-size: inherit } @@ -110,7 +136,8 @@ table { border-collapse: collapse; border-spacing: 0; width: 100%; - & + table { + + &+table { margin-top: 16px; } } @@ -119,10 +146,11 @@ table th { font-weight: 600; white-space: nowrap; color: #5c6b77; - background: rgba(0,0,0,.02); + background: rgba(0, 0, 0, .02); } -table th,table td { +table th, +table td { padding: 8px 13px; border: 1px solid #dfe2e5; } @@ -155,53 +183,87 @@ img[align=left] { padding-right: 20px; } -.comment,.quote{ - color:#998; +.comment, +.quote { + color: #998; } -.keyword,.selector-tag,.subst{ - color:#333;font-weight:bold; -} -.number,.literal,.variable,.template-variable,.tag .attr{ - color:#008080; + +.keyword, +.selector-tag, +.subst { + color: #333; + font-weight: bold; } -.string,.doctag{ - color:#d14; + +.number, +.literal, +.variable, +.template-variable, +.tag .attr { + color: #008080; } -.title,.section,.selector-id{ - color:#900;font-weight:bold; + +.string, +.doctag { + color: #d14; } -.subst{ - font-weight:normal; + +.title, +.section, +.selector-id { + color: #900; + font-weight: bold; } -.type,.class .title{ - color:#458;font-weight:bold; + +.subst { + font-weight: normal; } -.tag,.name,.attribute{ - color:#000098; - font-weight:normal; + +.type, +.class .title { + color: #458; + font-weight: bold; } -.regexp,.link{ - color:#009926; + +.tag, +.name, +.attribute { + color: #000098; + font-weight: normal; } -.symbol,.bullet{ - color:#990073; + +.regexp, +.link { + color: #009926; } -.built_in,.builtin-name{ - color:#0086b3; + +.symbol, +.bullet { + color: #990073; } -.meta{ - color:#999;font-weight:bold; + +.built_in, +.builtin-name { + color: #0086b3; } -.deletion{ - background:#fdd; + +.meta { + color: #999; + font-weight: bold; } -.addition{ - background:#dfd; + +.deletion { + background: #fdd; } -.emphasis{ - font-style:italic; + +.addition { + background: #dfd; } -.strong{ - font-weight:bold; + +.emphasis { + font-style: italic; } +.strong { + font-weight: bold; +} \ No newline at end of file diff --git a/packages/theme/package.json b/packages/theme/package.json index 51995b7d..3cb4c704 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -8,6 +8,7 @@ "classnames": "^2.2.6", "diana": "^1.0.2", "less": "^3.0.2", + "prism-react-renderer": "^1.2.1", "react": "^17.0.1", "react-dom": "^17.0.1", "react-hot-loader": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 6f1a6e9e..82d82c2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9827,6 +9827,11 @@ pretty-time@^1.1.0: resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== +prism-react-renderer@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89" + integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" From e935b95449bbf1c710bd220c43bc7e1c2cfe6161 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 8 Jun 2021 13:29:50 +0800 Subject: [PATCH 230/352] feat: support write react component in .md --- components/Button/index.jsx | 9 ++ components/Button/index.less | 17 +++ components/index.jsx | 5 + docs/components/index.jsx | 10 -- ...46\345\206\231\347\273\204\344\273\266.md" | 11 +- packages/crd-markdown-loader/.npmrc | 10 -- packages/crd-markdown-loader/README.md | 3 - packages/crd-markdown-loader/index.js | 129 ------------------ packages/crd-markdown-loader/package.json | 24 ---- packages/create-react-doc/index.js | 1 + .../scripts/src/conf/webpack.config.dev.js | 20 +-- packages/scripts/src/conf/webpack.config.js | 17 +-- .../scripts/src/conf/webpack.config.prod.js | 22 +-- packages/scripts/src/utils/initCache.js | 1 + packages/theme/markdown/index.js | 39 ++++-- 15 files changed, 97 insertions(+), 221 deletions(-) create mode 100644 components/Button/index.jsx create mode 100644 components/Button/index.less create mode 100644 components/index.jsx delete mode 100644 docs/components/index.jsx delete mode 100644 packages/crd-markdown-loader/.npmrc delete mode 100644 packages/crd-markdown-loader/README.md delete mode 100644 packages/crd-markdown-loader/index.js delete mode 100644 packages/crd-markdown-loader/package.json diff --git a/components/Button/index.jsx b/components/Button/index.jsx new file mode 100644 index 00000000..4880414c --- /dev/null +++ b/components/Button/index.jsx @@ -0,0 +1,9 @@ +import styles from './index.less' + +const Button = ({ + children, +}) => { + return +} + +export default Button diff --git a/components/Button/index.less b/components/Button/index.less new file mode 100644 index 00000000..35d4d2df --- /dev/null +++ b/components/Button/index.less @@ -0,0 +1,17 @@ +.btn { + color: #fff; + background: #1890ff; + border-color: #1890ff; + text-shadow: 0 -1px 0 rgb(0 0 0 / 12%); + box-shadow: 0 2px #0000000b; + height: 40px; + padding: 6.4px 15px; + font-size: 16px; + border-radius: 2px; + line-height: 1.5715; + position: relative; + display: inline-block; + font-weight: 400; + white-space: nowrap; + text-align: center; +} \ No newline at end of file diff --git a/components/index.jsx b/components/index.jsx new file mode 100644 index 00000000..cff0bc61 --- /dev/null +++ b/components/index.jsx @@ -0,0 +1,5 @@ +import Button from './Button/index.jsx' + +export { + Button, +} diff --git a/docs/components/index.jsx b/docs/components/index.jsx deleted file mode 100644 index 59b1268e..00000000 --- a/docs/components/index.jsx +++ /dev/null @@ -1,10 +0,0 @@ -const Button = ({ - children, -}) => { - console.log('children', children) - return {children} -} - -export { - Button, -} diff --git "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" index 208e5c3a..21b3a89d 100644 --- "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" +++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" @@ -1,9 +1,16 @@ +import { Button } from '../components/index.jsx' + ## 书写组件 [create-react-doc](https://github.com/MuYunyun/create-react-doc) 内置了 [mdx](https://github.com/mdx-js/mdx), 你可以在 .md 文件中书写 React 组件, 因此你可以选择 create-react-doc 来快速搭建组件站点开发环境。 ## 例子 - ### Button 组件 - +```js +import { Button } from '../components/index.jsx' + + +``` + + \ No newline at end of file diff --git a/packages/crd-markdown-loader/.npmrc b/packages/crd-markdown-loader/.npmrc deleted file mode 100644 index 7edb6af8..00000000 --- a/packages/crd-markdown-loader/.npmrc +++ /dev/null @@ -1,10 +0,0 @@ -# .npmrc - -registry=https://registry.npmjs.org/ - -# https://github.com/sass/node-sass#binary-configuration-parameters -sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ - -# https://github.com/Medium/phantomjs#deciding-where-to-get-phantomjs -# phantomjs_cdnurl=http://cnpmjs.org/downloads -phantomjs_cdnurl=https://npm.taobao.org/dist/phantomjs diff --git a/packages/crd-markdown-loader/README.md b/packages/crd-markdown-loader/README.md deleted file mode 100644 index 66be9a52..00000000 --- a/packages/crd-markdown-loader/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### crd-markdown-loader - -markdown loader with webpack for [create-react-doc](https://github.com/MuYunyun/create-react-doc)。 \ No newline at end of file diff --git a/packages/crd-markdown-loader/index.js b/packages/crd-markdown-loader/index.js deleted file mode 100644 index 38333938..00000000 --- a/packages/crd-markdown-loader/index.js +++ /dev/null @@ -1,129 +0,0 @@ -import highlight from 'highlight.js' -import frontMatter from 'front-matter' -import mdContainer from 'markdown-it-container' -import md from 'markdown-it' - -console.log('✅✅✅✅✅✅✅') - -const options = { - className: 'wrap', -} - -const mdLoader = md({ - html: true, // Enable HTML tags in source - xhtmlOut: true, // Use '/' to close single tags (
    ) - typographer: false, - linkify: false, // Auto convert URL-like text to links -}) - .enable(['smartquotes']) - .set({ - highlight(content: any, languageHint: any) { - let highlightedContent = null - - highlight.configure({ - useBR: true, - tabReplace: ' ', - }) - - if (languageHint && highlight.getLanguage(languageHint)) { - try { - highlightedContent = highlight.highlight(languageHint, content).value - } catch (err) { - console.log(err) - } - } - - if (!highlightedContent) { - try { - highlightedContent = highlight.highlightAuto(content).value - } catch (err) { - console.log(err) - } - } - - // 把代码中的{}转 - highlightedContent = highlightedContent.replace( - /[{}]/g, - (match: string) => `{'${match}'}`, - ) - // 加上 highlight js - highlightedContent = highlightedContent - .replace('', '') - - return highlight.fixMarkup(highlightedContent) - }, - }) - -/** at-component-docs__container 用于做除 demo 和 table 之外的公共样式 */ -const formatModule = (imports: string, jsx: string) => { - const moduleText = ` - ${imports} - - export default class extends React.Component { - render(){ - return ( -
    -
    - ${jsx} -
    -
    - ); - } - };` - return moduleText -} - -const formatOpening = () => - `
    -
    -
    ` -const formatClosing = () => - `
    ` - -module.exports = function (source: any) { - console.log('✅✅✅✅✅source') - const { - body, - attributes: { imports: importMap }, - } = frontMatter(source) - const imports = `import * as React from 'react';${importMap}` - - /* 处理 :::demo 开头的 markdown 内容 */ - mdLoader.use(mdContainer, 'demo', { - validate: (params: string) => params.trim().match(/^demo\s*(.*)$/), - render: (tokens: any[], idx: number) => { - // container 从开头到结尾把之间的token跑一遍,其中idx定位到具体的位置 - // 有此标记代表 ::: 开始 - if (tokens[idx].nesting === 1) { - let i = 1 - // 从 ::: 下一个token开始 - let token = tokens[idx + i] - - // 如果没有到结尾 - while (token.markup !== ':::') { - i++ - token = tokens[idx + i] - } - // 描述也执行md - return formatOpening() - } - return formatClosing() - }, - }) - - // md 处理过后的字符串含有 class 和 style ,需要再次处理给到 react - let content = mdLoader.render(body) - - content = content - .replace(/
    /g, '
    ') - .replace(/
    /g, '
    ') - .replace(/class=/g, 'className=') - .replace(/style="text-align:center"/g, 'style={{ textAlign: "center"}}') - .replace(/style="text-align:left"/g, 'style={{ textAlign: "left"}}') - .replace(/style="text-align:right"/g, 'style={{ textAlign: "right"}}') - .replace(/\(_blank\)/g, ` target="_blank">`) - - return `module.exports = ${formatModule(imports, content)}` -} diff --git a/packages/crd-markdown-loader/package.json b/packages/crd-markdown-loader/package.json deleted file mode 100644 index 12532f36..00000000 --- a/packages/crd-markdown-loader/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "crd-markdown-loader", - "version": "1.1.3", - "description": "markdown-loader with webpack for create react doc", - "main": "index.js", - "dependencies": { - "front-matter": "^4.0.2", - "highlight.js": "^11.0.1", - "markdown-it": "^12.0.6", - "markdown-it-container": "^3.0.0" - }, - "repository": { - "type": "git", - "url": "https://github.com/MuYunyun/create-react-doc", - "directory": "packages/utils" - }, - "keywords": [], - "publishConfig": { - "access": "public" - }, - "author": "muyunyun", - "license": "MIT", - "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" -} diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index e8da6f21..935a90c8 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -39,6 +39,7 @@ program const { start, build, deploy, theme } = program +console.log('start', start) if (!start && !build && !deploy && !theme) return initProject(program) if (theme) { diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index c72d4e8f..e83ae437 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -121,16 +121,16 @@ module.exports = function (cmd) { template: defaultHTMLPath, title: docsConfig && docsConfig.title ? docsConfig.title : 'Create React Doc', }), - new CreateSpareWebpackPlugin({ - // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 - path: path.join(cacheDirPath, './md'), - sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 - directoryTrees: { // 索引目录 - dir: cmd.markdownPaths, - mdconf: true, - extensions: /\.md$/, - }, - }), + // new CreateSpareWebpackPlugin({ + // // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 + // path: path.join(cacheDirPath, './md'), + // sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 + // directoryTrees: { // 索引目录 + // dir: cmd.markdownPaths, + // mdconf: true, + // extensions: /\.md$/, + // }, + // }), new FriendlyErrorsWebpackPlugin({ clearConsole: true, }), diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 5f2adc00..864e4e24 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -74,15 +74,16 @@ module.exports = { }, '@mdx-js/loader', // 'crd-markdown-loader', - { - loader: `${path.join(__dirname, './modifyMarkdownLoader.js')}`, - options: { - path: path.join(cacheDirPath, './md'), // dir need to replace - replace: paths.projectPath, // the dir to replace - sep: /___/g, // name saved, folder + __ + file - }, - }, + // { + // loader: `${path.join(__dirname, './modifyMarkdownLoader.js')}`, + // options: { + // path: path.join(cacheDirPath, './md'), // dir need to replace + // replace: paths.projectPath, // the dir to replace + // sep: /___/g, // name saved, folder + __ + file + // }, + // }, ], + exclude: /(node_modules)/, }, // { // test: /\.md$/, diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index e16a888a..c1fc1531 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -147,17 +147,17 @@ module.exports = function (cmd) { dir: cmd.markdownPaths, toDir: config.output.path, }), - new CreateSpareWebpackPlugin({ - // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 - path: path.join(cacheDirPath, './md'), - sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 - directoryTrees: { - // 索引目录 - dir: cmd.markdownPaths, - mdconf: true, - extensions: /\.md$/, - }, - }), + // new CreateSpareWebpackPlugin({ + // // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 + // path: path.join(cacheDirPath, './md'), + // sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 + // directoryTrees: { + // // 索引目录 + // dir: cmd.markdownPaths, + // mdconf: true, + // extensions: /\.md$/, + // }, + // }), // new webpack.optimize.DedupePlugin(), new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output diff --git a/packages/scripts/src/utils/initCache.js b/packages/scripts/src/utils/initCache.js index ce265b07..7e2ffd08 100644 --- a/packages/scripts/src/utils/initCache.js +++ b/packages/scripts/src/utils/initCache.js @@ -38,6 +38,7 @@ module.exports = function (program, cb) { ) // generate file cache only it isn't in .gitignore if (!ifInGitIgnore(mdfilePath)) { + // todo: remove ___ const underlineFileName = mdfilePath.split(path.sep).join('___') const writeMarkdownPath = path.resolve( process.cwd(), diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index 06cf77ad..00c92d94 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -1,18 +1,18 @@ import { useState, useEffect, useRef } from 'react' import cx from 'classnames' -import ReactMarkdown from 'react-markdown' -import hljs from 'highlight.js' +// import ReactMarkdown from 'react-markdown' +// import hljs from 'highlight.js' import { MDXProvider } from '@mdx-js/react' import CodeBlock from './codeBlock' -import InlineCode from './InlineCode' +// import InlineCode from './InlineCode' import Link from './Link' import Loading from '../component/Loading' import styles from './style/index.less' -hljs.configure({ - tabReplace: ' ', // 2 spaces - classPrefix: '', // don't append class prefix -}) +// hljs.configure({ +// tabReplace: ' ', // 2 spaces +// classPrefix: '', // don't append class prefix +// }) const formatPath = path => path.replace(/^(\/|\\)/, '') @@ -26,19 +26,30 @@ const components = { link: Link, } -function Markdown({ props }) { - const { type, relative } = props +function Markdown(markdownProps) { + // const { props } = markdownProps + const { props } = markdownProps + const { relative } = props const [MarkdownCP, setMarkdownCP] = useState(null) const markdownWrapperRef = useRef(null) const renderMarkdown = () => { const relativeMd = relative if (!relativeMd) return null - let filename = formatPath(relativeMd) - if (type === 'directory') { - filename = formatPath(relativeMd) - } - import(`__project_root__/.cache/md/${filename}.md`).then((data) => { + // let filename = formatPath(relativeMd) + // if (type === 'directory') { + // filename = formatPath(relativeMd) + // } + // import(`__project_root__/.cache/md/${filename}.md`).then((data) => { + // import(`__project_root__${relative}`).then((data) => { + // console.log('data', data) + // // data.default is a function, so we should write () => data.default in setState here. + // // setMarkdownCP(() => (data.default || data)) + // }) + + const rmFirstSlash = relative.slice(1, relative.length - 3) + // it must be writen with / & .md in dynamic import + import(`__project_root__/${rmFirstSlash}.md`).then((data) => { // data.default is a function, so we should write () => data.default in setState here. setMarkdownCP(() => (data.default || data)) }) From 396e3a192398a7a56d8cf24fcae5fa98c7541497 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 9 Jun 2021 10:44:50 +0800 Subject: [PATCH 231/352] feat: support math in markdown --- config.yml | 7 +- ...60\345\255\246\345\205\254\345\274\217.md" | 35 +++++++++ ...32\344\271\211\344\270\273\351\242\230.md" | 2 +- packages/scripts/package.json | 2 + packages/scripts/src/conf/webpack.config.js | 54 ++++++------- packages/theme/index.html | 4 +- yarn.lock | 77 ++++++++++++++++++- 7 files changed, 145 insertions(+), 36 deletions(-) create mode 100644 "docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" diff --git a/config.yml b/config.yml index 848d04df..d74d598b 100644 --- a/config.yml +++ b/config.yml @@ -8,13 +8,14 @@ title: Create React Doc ## todo: auto menu menu: [ docs/快速上手.md, + docs/更新日志.md, docs/默认主题.md, docs/站点发布.md, - docs/高阶用法.md, docs/自定义主题.md, docs/其它工具.md, - docs/更新日志.md, - docs/书写组件.md + docs/书写组件.md, + docs/数学公式.md, + docs/高阶用法.md, ] ## set init open menu keys # menuOpenKeys: diff --git "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" new file mode 100644 index 00000000..ddd0a9df --- /dev/null +++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" @@ -0,0 +1,35 @@ +## 数学公式 + +在 `$$` 与 `$$` 之间书写 latex 数学公式即能显示在网页上。 + +```js +$$ +z = \frac{x}{y} +$$ + +$$ +C_1 \quad= \quad c_2 + c_4^3 +$$ + +$$ +y = \sqrt {x_1^2 + x_2^2 + x_3^2 + x_4^2} +$$ +``` + +被转化为 + +$$ +z = \frac{x}{y} +$$ + +$$ +C_1 \quad= \quad c_2 + c_4^3 +$$ + +$$ +y = \sqrt {x_1^2 + x_2^2 + x_3^2 + x_4^2} +$$ + +## 参考链接 + +* [latex 数学公式示例汇总](https://zhuanlan.zhihu.com/p/34799800) diff --git "a/docs/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" "b/docs/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" index 5c136bcb..04f91190 100644 --- "a/docs/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" +++ "b/docs/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" @@ -1,4 +1,4 @@ -### 使用自定义主题 +## 使用自定义主题 切换主题非常简单, 只需要将根目录文件 `config.yml` 中的 `theme` 更改为您想使用的主题即可。 diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 786bd5ca..5f5bfca1 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -50,6 +50,8 @@ "postcss-flexbugs-fixes": "^3.3.1", "postcss-loader": "^2.0.9", "process": "^0.11.10", + "rehype-katex": "^5.0.0", + "remark-math": "^3.0.1", "rimraf": "^2.6.2", "string-replace-loader": "^3.0.1", "style-loader": "^0.19.1", diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 864e4e24..61f84104 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -7,6 +7,8 @@ const fs = require('fs') const { resolveApp, docsConfig, cacheDirPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('crd-utils') // const { getSearchContent } = require('../utils'); +const remarkMath = require('remark-math') +const rehypeKatex = require('rehype-katex') const paths = require('./path') const pkg = require('../../package.json') @@ -63,43 +65,35 @@ module.exports = { { test: /\.md$/, use: [ - // { - // loader: require.resolve('crd-markdown-loader'), - // }, - // 'crd-markdown-loader', - // 'babel-loader' { loader: require.resolve('babel-loader'), options: require('../../.babelrc'), // eslint-disable-line }, - '@mdx-js/loader', - // 'crd-markdown-loader', - // { - // loader: `${path.join(__dirname, './modifyMarkdownLoader.js')}`, - // options: { - // path: path.join(cacheDirPath, './md'), // dir need to replace - // replace: paths.projectPath, // the dir to replace - // sep: /___/g, // name saved, folder + __ + file - // }, - // }, + // '@mdx-js/loader', + { + loader: require.resolve('@mdx-js/loader'), + options: { + remarkPlugins: [ + [ + remarkMath, + { + /* options */ + }, + ], + ], + rehypePlugins: [ + [ + rehypeKatex, + { + /* options */ + }, + ], + ], + }, + }, ], exclude: /(node_modules)/, }, - // { - // test: /\.md$/, - // use: [ - // // { - // // loader: `babel-loader!${path.join(__dirname, './mdloader.js')}`, - // // }, - // { - // loader: require.resolve('crd-markdown-loader'), - // }, - // { - // loader: require.resolve('babel-loader'), - // options: require('../../.babelrc'), // eslint-disable-line - // }, - // ], - // }, // “file-loader”确保这些资源由WebpackDevServer服务。 // 当您导入资源时,您将获得(虚拟)文件名。 // 在生产中,它们将被复制到`build`文件夹。 diff --git a/packages/theme/index.html b/packages/theme/index.html index ad901f2b..1471b8b9 100644 --- a/packages/theme/index.html +++ b/packages/theme/index.html @@ -9,7 +9,9 @@ - + + diff --git a/yarn.lock b/yarn.lock index 82d82c2f..dfe869cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2223,6 +2223,11 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/katex@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@types/katex/-/katex-0.11.0.tgz#b16c54ee670925ffef0616beae9e90c557e17334" + integrity sha512-27BfE8zASRLYfSBNMk5/+KIjr2CBBrH0i5lhsO04fca4TGirIIMay73v3zNkzqmsaeIa/Mi5kejWDcxPLAmkvA== + "@types/mdast@^3.0.0": version "3.0.3" resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" @@ -3807,6 +3812,11 @@ commander@^4.0.1, commander@^4.1.1: resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^6.0.0: + version "6.2.1" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -6194,6 +6204,11 @@ hast-util-from-parse5@^6.0.0: vfile-location "^3.2.0" web-namespaces "^1.0.0" +hast-util-is-element@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz#3b3ed5159a2707c6137b48637fbfe068e175a425" + integrity sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ== + hast-util-parse-selector@^2.0.0: version "2.2.5" resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" @@ -6226,6 +6241,15 @@ hast-util-to-parse5@^6.0.0: xtend "^4.0.0" zwitch "^1.0.0" +hast-util-to-text@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz#04f2e065642a0edb08341976084aa217624a0f8b" + integrity sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ== + dependencies: + hast-util-is-element "^1.0.0" + repeat-string "^1.0.0" + unist-util-find-after "^3.0.0" + hastscript@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" @@ -7327,6 +7351,13 @@ jsprim@^1.2.2: array-includes "^3.1.1" object.assign "^4.1.1" +katex@^0.13.0: + version "0.13.11" + resolved "https://registry.npmjs.org/katex/-/katex-0.13.11.tgz#66138ebf173f25ef130cd3a3ea3ea1d12a3f1362" + integrity sha512-yJBHVIgwlAaapzlbvTpVF/ZOs8UkTj/sd46Fl8+qAf2/UiituPYVeapVD8ADZtqyRg/qNWUKt7gJoyYVWLrcXw== + dependencies: + commander "^6.0.0" + killable@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -10462,6 +10493,26 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" +rehype-katex@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/rehype-katex/-/rehype-katex-5.0.0.tgz#b556f24fde918f28ba1cb642ea71c7e82f3373d7" + integrity sha512-ksSuEKCql/IiIadOHiKRMjypva9BLhuwQNascMqaoGLDVd0k2NlE2wMvgZ3rpItzRKCd6vs8s7MFbb8pcR0AEg== + dependencies: + "@types/katex" "^0.11.0" + hast-util-to-text "^2.0.0" + katex "^0.13.0" + rehype-parse "^7.0.0" + unified "^9.0.0" + unist-util-visit "^2.0.0" + +rehype-parse@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz#58900f6702b56767814afc2a9efa2d42b1c90c57" + integrity sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw== + dependencies: + hast-util-from-parse5 "^6.0.0" + parse5 "^6.0.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -10472,6 +10523,11 @@ remark-footnotes@2.0.0: resolved "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== +remark-math@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/remark-math/-/remark-math-3.0.1.tgz#85a02a15b15cad34b89a27244d4887b3a95185bb" + integrity sha512-epT77R/HK0x7NqrWHdSV75uNLwn8g9qTyMqCRCDujL0vj/6T6+yhdrR7mjELWtkse+Fw02kijAaBuVcHBor1+Q== + remark-mdx@1.6.22: version "1.6.22" resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" @@ -10557,7 +10613,7 @@ repeat-element@^1.1.2: resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -12110,6 +12166,18 @@ unified@^6.1.5: vfile "^2.0.0" x-is-string "^0.1.0" +unified@^9.0.0: + version "9.2.1" + resolved "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz#ae18d5674c114021bfdbdf73865ca60f410215a3" + integrity sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + union-value@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -12149,6 +12217,13 @@ unist-builder@2.0.3, unist-builder@^2.0.0: resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== +unist-util-find-after@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz#5c65fcebf64d4f8f496db46fa8fd0fbf354b43e6" + integrity sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ== + dependencies: + unist-util-is "^4.0.0" + unist-util-generated@^1.0.0: version "1.1.6" resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" From 348a0aacfdbe751a5e14d1448d32d8fa808ff948 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 9 Jun 2021 13:40:29 +0800 Subject: [PATCH 232/352] =?UTF-8?q?feat:=20create-react-doc=20=E9=9B=86?= =?UTF-8?q?=E6=88=90=20MDX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + config.yml | 1 + ...64\346\226\260\346\227\245\345\277\227.md" | 9 +++++ ...30\351\230\266\347\224\250\346\263\225.md" | 37 ++--------------- injectLogic/index.js | 27 +------------ .../scripts/src/conf/modifyMarkdownLoader.js | 40 +++++++++---------- .../scripts/src/conf/webpack.config.dev.js | 4 +- packages/scripts/src/conf/webpack.config.js | 2 - packages/scripts/src/utils/initCache.js | 36 ++++++++--------- 9 files changed, 57 insertions(+), 101 deletions(-) diff --git a/.gitignore b/.gitignore index 51554dd2..1de26e58 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ package-lock.json #.swp *.*~ ~*.* + +docs/忽略文件.md \ No newline at end of file diff --git a/config.yml b/config.yml index d74d598b..b4c90064 100644 --- a/config.yml +++ b/config.yml @@ -16,6 +16,7 @@ menu: [ docs/书写组件.md, docs/数学公式.md, docs/高阶用法.md, + docs/忽略文件.md ] ## set init open menu keys # menuOpenKeys: diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 9fc49fd0..f30f7c77 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,6 +2,15 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.4.0 + +`2020-06-09` + +- **Feature** + + - 🚀 create-react-doc 集成 MDX。[issue](https://github.com/MuYunyun/create-react-doc/issues/138)、[mr](https://github.com/MuYunyun/create-react-doc/pull/143) + - 🚀 支持在 .md 文件中`书写 React 组件`。 + - 🚀 支持在 .md 文件中`书写数学公式`。 ### 1.2.0 diff --git "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" index 5c172ec5..975f0325 100644 --- "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" +++ "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" @@ -2,11 +2,7 @@ 与 git 文件结构类似, 如果在展示的文件夹中有私有文件不方便展示在文档站点, 可以在 `.gitignore` 文件中设置过滤文件, 这样它们就不会展示在文档站点中了。eg: [.gitignore](https://github.com/MuYunyun/blog/blob/main/.gitignore) -## 数学公式 - -Todo: - -### 使用方式 +### 插入自定义脚本 在 `config.yml` 文件中加入 `inject` 字段。 @@ -14,36 +10,11 @@ Todo: + inject: injectLogic/index.js ``` -然后在根目录新建与 `inject` 字段相对应的文件, 声明 `injectWithPathname` 函数, 写入[自定义逻辑](https://github.com/MuYunyun/create-react-doc/injectLogic/index.js), 完成 MathJax 的使用。 +然后在根目录新建与 `inject` 字段相对应的文件, 声明 `injectWithPathname` 函数, 写入[自定义逻辑](https://github.com/MuYunyun/create-react-doc/injectLogic/index.js)。 ```js // perf injectWithPathname logic every pathname changes -const injectWithPathname = (pathname) => { - // demo for using mathjax. see https://github.com/MuYunyun/create-react-doc/issues/63 - if (pathname !== '/高阶用法') return; - window.MathJax = { - tex: { - inlineMath: [['$', '$'], ['\\(', '\\)']], - }, - svg: { - fontCache: 'global', - }, - }; - const script = document.createElement('script'); - script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js'; - const tag = 'mathjax'; - script.id = tag; - script.async = true; - const scriptNode = document.getElementById(tag); - try { - if (!scriptNode) { - document.head.appendChild(script); - } else { - scriptNode.remove(); - document.head.appendChild(script); - } - } catch (error) {} -}; +const injectWithPathname = (pathname) => {} -module.exports = { injectWithPathname }; +module.exports = { injectWithPathname } ``` \ No newline at end of file diff --git a/injectLogic/index.js b/injectLogic/index.js index 44ffdd69..a1a94c89 100644 --- a/injectLogic/index.js +++ b/injectLogic/index.js @@ -9,31 +9,6 @@ const inject = () => { } // perf injectWithPathname logic every pathname changes -const injectWithPathname = (pathname) => { - // demo for using mathjax. see https://github.com/MuYunyun/create-react-doc/issues/63 - if (pathname !== '/高阶用法') return - window.MathJax = { - tex: { - inlineMath: [['$', '$'], ['\\(', '\\)']], - }, - svg: { - fontCache: 'global', - }, - } - const script = document.createElement('script') - script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js' - const tag = 'mathjax' - script.id = tag - script.async = true - const scriptNode = document.getElementById(tag) - try { - if (!scriptNode) { - document.head.appendChild(script) - } else { - scriptNode.remove() - document.head.appendChild(script) - } - } catch (error) {} -} +const injectWithPathname = (pathname) => {} module.exports = { inject, injectWithPathname } diff --git a/packages/scripts/src/conf/modifyMarkdownLoader.js b/packages/scripts/src/conf/modifyMarkdownLoader.js index 9497693a..0fd6eeff 100644 --- a/packages/scripts/src/conf/modifyMarkdownLoader.js +++ b/packages/scripts/src/conf/modifyMarkdownLoader.js @@ -1,23 +1,23 @@ -/** - * this webpack plugin is to modify markdown position. - */ -const loaderUtils = require('loader-utils') -const PATH = require('path') -const FS = require('fs') +// /** +// * this webpack plugin is to modify markdown position. +// */ +// const loaderUtils = require('loader-utils') +// const PATH = require('path') +// const FS = require('fs') -module.exports = function (source) { - const options = loaderUtils.getOptions(this) || {} - const { replace, sep, path, include, extensions } = options - let content = '' +// module.exports = function (source) { +// const options = loaderUtils.getOptions(this) || {} +// const { replace, sep, path, include, extensions } = options +// let content = '' - let fpath = this.resourcePath.replace(sep || /___/g, PATH.sep) - if (path && replace && (!include || include.test(fpath))) { - fpath = fpath.replace(path, replace) - this.addDependency(fpath) - } +// let fpath = this.resourcePath.replace(sep || /___/g, PATH.sep) +// if (path && replace && (!include || include.test(fpath))) { +// fpath = fpath.replace(path, replace) +// this.addDependency(fpath) +// } - if (FS.existsSync(fpath)) { - content = FS.readFileSync(fpath) - } - return content -} +// if (FS.existsSync(fpath)) { +// content = FS.readFileSync(fpath) +// } +// return content +// } diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index e83ae437..dbddb072 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -3,10 +3,10 @@ const webpack = require('webpack') const path = require('path') const upath = require('upath') const HtmlWebpackPlugin = require('html-webpack-plugin') -const { defaultHTMLPath, cacheDirPath } = require('crd-utils') +const { defaultHTMLPath } = require('crd-utils') const FriendlyErrorsWebpackPlugin = require('@nuxtjs/friendly-errors-webpack-plugin') const { getDocsConfig } = require('crd-utils') -const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') +// const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') const paths = require('./path') diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 61f84104..92bffd03 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -1,6 +1,5 @@ /* eslint-disable global-require */ /* eslint-disable import/no-dynamic-require */ -const path = require('path') const webpack = require('webpack') const webpackbar = require('webpackbar') const fs = require('fs') @@ -69,7 +68,6 @@ module.exports = { loader: require.resolve('babel-loader'), options: require('../../.babelrc'), // eslint-disable-line }, - // '@mdx-js/loader', { loader: require.resolve('@mdx-js/loader'), options: { diff --git a/packages/scripts/src/utils/initCache.js b/packages/scripts/src/utils/initCache.js index 7e2ffd08..4b87aeba 100644 --- a/packages/scripts/src/utils/initCache.js +++ b/packages/scripts/src/utils/initCache.js @@ -32,25 +32,25 @@ module.exports = function (program, cb) { // eslint-disable-next-line no-plusplus for (let i = 0; i < flatTreeData.length; i++) { const mdfile = flatTreeData[i] - const mdfilePath = mdfile.replace( - process.cwd() + path.sep, - '', - ) + // const mdfilePath = mdfile.replace( + // process.cwd() + path.sep, + // '', + // ) // generate file cache only it isn't in .gitignore - if (!ifInGitIgnore(mdfilePath)) { - // todo: remove ___ - const underlineFileName = mdfilePath.split(path.sep).join('___') - const writeMarkdownPath = path.resolve( - process.cwd(), - cacheDirPath, - 'md', - underlineFileName, - ) - if (fs.existsSync(mdfile)) { - const content = fs.readFileSync(mdfile) - write.sync(writeMarkdownPath, content) - } - } + // if (!ifInGitIgnore(mdfilePath)) { + // // todo: remove ___ + // const underlineFileName = mdfilePath.split(path.sep).join('___') + // const writeMarkdownPath = path.resolve( + // process.cwd(), + // cacheDirPath, + // 'md', + // underlineFileName, + // ) + // if (fs.existsSync(mdfile)) { + // const content = fs.readFileSync(mdfile) + // write.sync(writeMarkdownPath, content) + // } + // } } function dfsMap(data) { From 427c31d3d5ce36a614c4d47a2a2bd78a47ea9963 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 9 Jun 2021 18:55:50 +0800 Subject: [PATCH 233/352] feat: create-react-doc support MDX --- .babelrc.js | 36 --------- config.yml | 3 +- ...32\344\271\211\344\270\273\351\242\230.md" | 0 ...30\350\256\244\344\270\273\351\242\230.md" | 0 ...46\345\206\231\347\273\204\344\273\266.md" | 2 +- ...60\345\255\246\345\205\254\345\274\217.md" | 20 +++-- ...64\346\226\260\346\227\245\345\277\227.md" | 12 ++- packages/create-react-doc/index.js | 1 - packages/scripts/package.json | 4 - .../scripts/src/conf/modifyMarkdownLoader.js | 23 ------ .../scripts/src/conf/webpack.config.dev.js | 11 --- .../scripts/src/conf/webpack.config.prod.js | 14 +--- packages/scripts/src/utils/initCache.js | 40 +--------- packages/theme/index.html | 1 - packages/theme/markdown/InlineCode.js | 74 ------------------- packages/theme/markdown/InlineCode.less | 33 --------- packages/theme/markdown/index.js | 35 --------- packages/theme/markdown/style/default.less | 31 ++++---- yarn.lock | 49 +----------- 19 files changed, 43 insertions(+), 346 deletions(-) delete mode 100644 .babelrc.js rename "docs/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" => "docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" (100%) rename "docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" => "docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" (100%) delete mode 100644 packages/scripts/src/conf/modifyMarkdownLoader.js delete mode 100644 packages/theme/markdown/InlineCode.js delete mode 100644 packages/theme/markdown/InlineCode.less diff --git a/.babelrc.js b/.babelrc.js deleted file mode 100644 index 806a2b7f..00000000 --- a/.babelrc.js +++ /dev/null @@ -1,36 +0,0 @@ -const babelrc = { - presets: [ - [ - "@babel/preset-env", - { - targets: { - browsers: ["last 2 versions", "ie >= 10"], - }, - }, - ], - ["@babel/preset-react", { - "runtime": "automatic" - }] - ], - plugins: [ - "@babel/plugin-syntax-object-rest-spread", - "@babel/plugin-syntax-dynamic-import", - "@babel/plugin-transform-async-to-generator", - "@babel/plugin-proposal-class-properties", - "@babel/plugin-transform-runtime" - ], - env: { - production: {}, - }, -}; - -if (process.env.NODE_ENV === 'development') { - // 不要包含多余的空格字符和行结束符。 - // 设置为“auto”时,对于大于500KB的输入大小,设置为"true"。 - // https://babeljs.io/docs/usage/api/#options - babelrc.cacheDirectory = true; -} else { - babelrc.compact = true; -} - -module.exports = babelrc diff --git a/config.yml b/config.yml index b4c90064..c4ea3314 100644 --- a/config.yml +++ b/config.yml @@ -9,9 +9,8 @@ title: Create React Doc menu: [ docs/快速上手.md, docs/更新日志.md, - docs/默认主题.md, + docs/主题, docs/站点发布.md, - docs/自定义主题.md, docs/其它工具.md, docs/书写组件.md, docs/数学公式.md, diff --git "a/docs/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" similarity index 100% rename from "docs/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" rename to "docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" diff --git "a/docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" similarity index 100% rename from "docs/\351\273\230\350\256\244\344\270\273\351\242\230.md" rename to "docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" diff --git "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" index 21b3a89d..0e82c45a 100644 --- "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" +++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" @@ -2,7 +2,7 @@ import { Button } from '../components/index.jsx' ## 书写组件 -[create-react-doc](https://github.com/MuYunyun/create-react-doc) 内置了 [mdx](https://github.com/mdx-js/mdx), 你可以在 .md 文件中书写 React 组件, 因此你可以选择 create-react-doc 来快速搭建组件站点开发环境。 +[create-react-doc](https://github.com/MuYunyun/create-react-doc) 内置了 [mdx](https://github.com/mdx-js/mdx), 你可以在 .md 文件中书写 React 组件, 因此你可以选择 create-react-doc 来快速搭建组件站点。 ## 例子 ### Button 组件 diff --git "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" index ddd0a9df..5cebe3e2 100644 --- "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" +++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" @@ -1,30 +1,38 @@ ## 数学公式 -在 `$$` 与 `$$` 之间书写 latex 数学公式即能显示在网页上。 +支持在 `$$` 与 `$$` 之间书写 latex 数学公式即能显示在网页上。 ```js $$ z = \frac{x}{y} $$ +``` + +被转化为: $$ -C_1 \quad= \quad c_2 + c_4^3 +z = \frac{x}{y} $$ +```js $$ -y = \sqrt {x_1^2 + x_2^2 + x_3^2 + x_4^2} +C_1 \quad= \quad c_2 + c_4^3 $$ ``` -被转化为 +被转化为: $$ -z = \frac{x}{y} +C_1 \quad= \quad c_2 + c_4^3 $$ +```js $$ -C_1 \quad= \quad c_2 + c_4^3 +y = \sqrt {x_1^2 + x_2^2 + x_3^2 + x_4^2} $$ +``` + +被转化为: $$ y = \sqrt {x_1^2 + x_2^2 + x_3^2 + x_4^2} diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index f30f7c77..fecc3e11 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,15 +2,19 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 -### 1.4.0 +### 1.3.0 `2020-06-09` - **Feature** - 🚀 create-react-doc 集成 MDX。[issue](https://github.com/MuYunyun/create-react-doc/issues/138)、[mr](https://github.com/MuYunyun/create-react-doc/pull/143) - - 🚀 支持在 .md 文件中`书写 React 组件`。 - - 🚀 支持在 .md 文件中`书写数学公式`。 + - 🚀 支持在 markdown 文件中`书写 React 组件`。 + - 🚀 支持在 markdown 文件中`书写数学公式`。 + +- **Enhancement** + + - 🎈 支持 yarn up、yarn up:dev 在 lerna 项目中快速安装包。[mr](https://github.com/MuYunyun/create-react-doc/pull/143/files?file-filters%5B%5D=.html&file-filters%5B%5D=.js&file-filters%5B%5D=.json&file-filters%5B%5D=.less&file-filters%5B%5D=.lock&file-filters%5B%5D=.sh) ### 1.2.0 @@ -114,7 +118,7 @@ - **Enhancement** - - 🎈项目结构重构为 monorepo。[pr](https://github.com/MuYunyun/create-react-doc/pull/16) + - 🎈 项目结构重构为 monorepo。[pr](https://github.com/MuYunyun/create-react-doc/pull/16) ### 0.1.0 diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index 935a90c8..e8da6f21 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -39,7 +39,6 @@ program const { start, build, deploy, theme } = program -console.log('start', start) if (!start && !build && !deploy && !theme) return initProject(program) if (theme) { diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 5f5bfca1..207d2ba4 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -33,17 +33,13 @@ "eslint": "^7.11.0", "eslint-loader": "^4.0.2", "file-loader": "^1.1.11", - "front-matter": "^4.0.2", "fs-extra": "^5.0.0", "gh-pages": "^1.2.0", - "highlight.js": "^11.0.1", "html-webpack-plugin": "^4.5.1", "less-loader": "^7.2.1", "loader-utils": "^2.0.0", "loading-cli": "^1.0.6", "local-ip-url": "^1.0.1", - "markdown-it": "^12.0.6", - "markdown-it-container": "^3.0.0", "mini-css-extract-plugin": "^0.4.0", "open-browsers": "^1.1.1", "path-browserify": "^1.0.1", diff --git a/packages/scripts/src/conf/modifyMarkdownLoader.js b/packages/scripts/src/conf/modifyMarkdownLoader.js deleted file mode 100644 index 0fd6eeff..00000000 --- a/packages/scripts/src/conf/modifyMarkdownLoader.js +++ /dev/null @@ -1,23 +0,0 @@ -// /** -// * this webpack plugin is to modify markdown position. -// */ -// const loaderUtils = require('loader-utils') -// const PATH = require('path') -// const FS = require('fs') - -// module.exports = function (source) { -// const options = loaderUtils.getOptions(this) || {} -// const { replace, sep, path, include, extensions } = options -// let content = '' - -// let fpath = this.resourcePath.replace(sep || /___/g, PATH.sep) -// if (path && replace && (!include || include.test(fpath))) { -// fpath = fpath.replace(path, replace) -// this.addDependency(fpath) -// } - -// if (FS.existsSync(fpath)) { -// content = FS.readFileSync(fpath) -// } -// return content -// } diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/scripts/src/conf/webpack.config.dev.js index dbddb072..227108fd 100644 --- a/packages/scripts/src/conf/webpack.config.dev.js +++ b/packages/scripts/src/conf/webpack.config.dev.js @@ -6,7 +6,6 @@ const HtmlWebpackPlugin = require('html-webpack-plugin') const { defaultHTMLPath } = require('crd-utils') const FriendlyErrorsWebpackPlugin = require('@nuxtjs/friendly-errors-webpack-plugin') const { getDocsConfig } = require('crd-utils') -// const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') const paths = require('./path') @@ -121,16 +120,6 @@ module.exports = function (cmd) { template: defaultHTMLPath, title: docsConfig && docsConfig.title ? docsConfig.title : 'Create React Doc', }), - // new CreateSpareWebpackPlugin({ - // // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 - // path: path.join(cacheDirPath, './md'), - // sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 - // directoryTrees: { // 索引目录 - // dir: cmd.markdownPaths, - // mdconf: true, - // extensions: /\.md$/, - // }, - // }), new FriendlyErrorsWebpackPlugin({ clearConsole: true, }), diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index c1fc1531..631397b4 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -10,9 +10,8 @@ const { generateSiteMap } = require('crd-generator-sitemap') // const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const fs = require('fs-extra') -const { defaultHTMLPath, cacheDirPath, docsBuildDist } = require('crd-utils') +const { defaultHTMLPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('crd-utils') -const CreateSpareWebpackPlugin = require('./createSpareWebpackPlugin') const config = require('./webpack.config') const paths = require('./path') const getPrerenderRoutes = require('./getPrerenderRoutes') @@ -147,17 +146,6 @@ module.exports = function (cmd) { dir: cmd.markdownPaths, toDir: config.output.path, }), - // new CreateSpareWebpackPlugin({ - // // 备用文件目录,比对是否存在,不存在生成,根据 sep 目录规则生成 - // path: path.join(cacheDirPath, './md'), - // sep: '___', // 检查目标目录文件,文件名存储,文件夹+下划线间隔+文件名 - // directoryTrees: { - // // 索引目录 - // dir: cmd.markdownPaths, - // mdconf: true, - // extensions: /\.md$/, - // }, - // }), // new webpack.optimize.DedupePlugin(), new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output diff --git a/packages/scripts/src/utils/initCache.js b/packages/scripts/src/utils/initCache.js index 4b87aeba..de31ed6c 100644 --- a/packages/scripts/src/utils/initCache.js +++ b/packages/scripts/src/utils/initCache.js @@ -1,57 +1,19 @@ const write = require('write') const path = require('path') -const fs = require('fs') const { cacheDirPath, getDocsConfig } = require('crd-utils') const DirectoryTree = require('../conf/node-directory-tree') -const { ifInGitIgnore } = require('./index') - -function restRuctureMarkdown(items, arr = []) { - items.forEach((item) => { - if (item.type === 'directory') { - restRuctureMarkdown(item.children, arr) - } else if (/\.md$/.test(item.path)) { - arr.push(item.path) - } - }) - return arr -} module.exports = function (program, cb) { const treeData = program.markdownPaths.map((markdownPath) => { return DirectoryTree(markdownPath, { - mdconf: true, // 存在 Markdown 设置 + mdconf: true, // Markdown config for exsiting file. extensions: /\.md/, }) }) - // cache Markdown, Markdown file name rule: `folder__folder__Markdown name.md` - const flatTreeData = restRuctureMarkdown(treeData) // to collect search data const searchData = [] const docsConfig = getDocsConfig() const useSearchPlugin = docsConfig.search && docsConfig.host - // eslint-disable-next-line no-plusplus - for (let i = 0; i < flatTreeData.length; i++) { - const mdfile = flatTreeData[i] - // const mdfilePath = mdfile.replace( - // process.cwd() + path.sep, - // '', - // ) - // generate file cache only it isn't in .gitignore - // if (!ifInGitIgnore(mdfilePath)) { - // // todo: remove ___ - // const underlineFileName = mdfilePath.split(path.sep).join('___') - // const writeMarkdownPath = path.resolve( - // process.cwd(), - // cacheDirPath, - // 'md', - // underlineFileName, - // ) - // if (fs.existsSync(mdfile)) { - // const content = fs.readFileSync(mdfile) - // write.sync(writeMarkdownPath, content) - // } - // } - } function dfsMap(data) { // eslint-disable-next-line no-plusplus diff --git a/packages/theme/index.html b/packages/theme/index.html index 1471b8b9..02b7a91c 100644 --- a/packages/theme/index.html +++ b/packages/theme/index.html @@ -9,7 +9,6 @@ - diff --git a/packages/theme/markdown/InlineCode.js b/packages/theme/markdown/InlineCode.js deleted file mode 100644 index f84e21f4..00000000 --- a/packages/theme/markdown/InlineCode.js +++ /dev/null @@ -1,74 +0,0 @@ -// import classNames from 'classnames' -import React from 'react' -import Highlight, { defaultProps } from 'prism-react-renderer' -import styles from './InlineCode.less' - -// export default class Canvas extends PureComponent { -// constructor() { -// super() -// this.state = { -// height: 0, -// } -// this.playerId = `${parseInt(Math.random() * 1e9, 10).toString(36)}` -// } -// onClick() { -// this.setState({ -// height: this.state.height === 0 ? this.codeDom.clientHeight : 0, -// }) -// } -// render() { -// const sourceCode = this.props.value || '' -// // const code = sourceCode.replace(/^__dome__/, '').replace(/\\`/g, '`') -// const code = sourceCode.replace(/\\`/g, '`') -// const PreCode = height => ( -//
    -//          this.codeDom = node} className={classNames('hljs', { [`language-${this.props.language}`]: this.props.language })}>
    -//           {code}
    -//         
    -//       
    -// ) -// // const isPreview = /^(html|htm)$/.test(this.props.language) - -// // if (/^__dome__/.test(sourceCode)) { -// // return ( -// //
    -// // {isPreview && ( -// //
    -// //
    -// //
    -// // )} -// // {PreCode(this.state.height)} -// //
    -// // {this.state.height === 0 ? '显示' : '隐藏'}代码 -// // {this.props.language &&
    {this.props.language}
    } -// //
    -// //
    -// // ) -// // } -// return PreCode() -// } -// } - -export default ({ children, className }) => { - const language = className.replace(/language-/, '') - return ( - - {({ className, style, tokens, getLineProps, getTokenProps }) => ( -
    -          {tokens.map((line, i) => (
    -            
    - {line.map((token, key) => ( - - ))} -
    - ))} -
    - )} -
    - ) -} diff --git a/packages/theme/markdown/InlineCode.less b/packages/theme/markdown/InlineCode.less deleted file mode 100644 index 0398827f..00000000 --- a/packages/theme/markdown/InlineCode.less +++ /dev/null @@ -1,33 +0,0 @@ -.demo { - border: 1px solid #d5d5d5; - border-radius: 4px; - margin-bottom: 15px; - .demoBody { - padding: 10px; - } - pre.highlight { - margin-bottom: 0; - margin-top: 0; - transition: all .3s; - :global(.hljs) { - padding: 10px; - } - } - .demoBody + pre.highlight + .demoControl { - border-top: 1px solid #d5d5d5; - } - .isPreview { - border-top: 1px solid #d5d5d5; - } - .demoControl { - padding: 3px 8px; - line-height: 20px; - background-color: rgba(0,0,0,.03); - cursor: pointer; - .language { - float: right; - text-shadow: 0 1px white; - color: #b1b1b1; - } - } -} diff --git a/packages/theme/markdown/index.js b/packages/theme/markdown/index.js index 00c92d94..391022a2 100644 --- a/packages/theme/markdown/index.js +++ b/packages/theme/markdown/index.js @@ -1,33 +1,17 @@ import { useState, useEffect, useRef } from 'react' import cx from 'classnames' -// import ReactMarkdown from 'react-markdown' -// import hljs from 'highlight.js' import { MDXProvider } from '@mdx-js/react' import CodeBlock from './codeBlock' -// import InlineCode from './InlineCode' import Link from './Link' import Loading from '../component/Loading' import styles from './style/index.less' -// hljs.configure({ -// tabReplace: ' ', // 2 spaces -// classPrefix: '', // don't append class prefix -// }) - -const formatPath = path => - path.replace(/^(\/|\\)/, '') - .replace(/\.md$/, '') - .replace(/\\/g, '/') - .split('/') - .join('___') - const components = { code: CodeBlock, link: Link, } function Markdown(markdownProps) { - // const { props } = markdownProps const { props } = markdownProps const { relative } = props const [MarkdownCP, setMarkdownCP] = useState(null) @@ -36,16 +20,6 @@ function Markdown(markdownProps) { const renderMarkdown = () => { const relativeMd = relative if (!relativeMd) return null - // let filename = formatPath(relativeMd) - // if (type === 'directory') { - // filename = formatPath(relativeMd) - // } - // import(`__project_root__/.cache/md/${filename}.md`).then((data) => { - // import(`__project_root__${relative}`).then((data) => { - // console.log('data', data) - // // data.default is a function, so we should write () => data.default in setState here. - // // setMarkdownCP(() => (data.default || data)) - // }) const rmFirstSlash = relative.slice(1, relative.length - 3) // it must be writen with / & .md in dynamic import @@ -59,15 +33,6 @@ function Markdown(markdownProps) { renderMarkdown() }, []) - // useEffect(() => { - // const code = markdownWrapperRef.current.getElementsByTagName('code') - // for (let i = 0; i < code.length; i += 1) { - // if (code[i].parentNode && code[i].parentNode.tagName === 'PRE') { - // hljs.highlightBlock(code[i]) - // } - // } - // }, [markdownStr]) - return (
    { diff --git a/packages/theme/markdown/style/default.less b/packages/theme/markdown/style/default.less index 4e36f86b..4f945c55 100644 --- a/packages/theme/markdown/style/default.less +++ b/packages/theme/markdown/style/default.less @@ -3,27 +3,26 @@ code { word-wrap: normal; } -code:not(.hljs) { - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - background-color: rgba(27, 31, 35, 0.07); - border-radius: 3px; -} - -code.hljs { - padding: 16px; - font-size: 95%; - line-height: 1.5; - display: block; - text-shadow: 0 1px #fff; -} +// code:not(.hljs) { +// padding: 0.2em 0.4em; +// margin: 0; +// font-size: 85%; +// background-color: rgba(27, 31, 35, 0.07); +// border-radius: 3px; +// } + +// code.hljs { +// padding: 16px; +// font-size: 95%; +// line-height: 1.5; +// display: block; +// text-shadow: 0 1px #fff; +// } pre { max-height: 35em; position: relative; overflow: auto; - // background-color: #F0F0F0; background-color: rgb(251, 251, 251); border-radius: 3px; } diff --git a/yarn.lock b/yarn.lock index dfe869cd..1d9f577c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2730,11 +2730,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - aria-query@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" @@ -4850,7 +4845,7 @@ entities@^1.1.1: resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@^2.0.0, entities@~2.1.0: +entities@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== @@ -5728,13 +5723,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -front-matter@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5" - integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== - dependencies: - js-yaml "^3.13.1" - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -6271,11 +6259,6 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^11.0.1: - version "11.0.1" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.0.1.tgz#a78bafccd9aa297978799fe5eed9beb7ee1ef887" - integrity sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ== - history@^4.7.2: version "4.10.1" resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -7490,13 +7473,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -linkify-it@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" - integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== - dependencies: - uc.micro "^1.0.1" - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -7806,22 +7782,6 @@ markdown-escapes@^1.0.0: resolved "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== -markdown-it-container@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b" - integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw== - -markdown-it@^12.0.6: - version "12.0.6" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-12.0.6.tgz#adcc8e5fe020af292ccbdf161fe84f1961516138" - integrity sha512-qv3sVLl4lMT96LLtR7xeRJX11OUFjsaD5oVat2/SNBIb21bJXwal2+SklcRbTwGwqWpWH/HRtYavOoJE+seL8w== - dependencies: - argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - math-expression-evaluator@^1.2.14: version "1.2.22" resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" @@ -7887,7 +7847,7 @@ mdn-data@2.0.4: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdurl@^1.0.0, mdurl@^1.0.1: +mdurl@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= @@ -12078,11 +12038,6 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - uglify-js@^3.1.4: version "3.11.5" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.5.tgz#d6788bc83cf35ff18ea78a65763e480803409bc6" From d3892aaf503fff771653a54815e455555ac48c81 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 10 Jun 2021 13:03:28 +0800 Subject: [PATCH 234/352] feat: create-react-doc support MDX --- README.md | 10 +++++----- config.yml | 1 - packages/create-react-doc/index.js | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 79f4657a..ca1898f9 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,12 @@ ## 特性 -* 建站理念: 文件即站点 (Files as a Site)。 +* 建站理念: `文件即站点` (Files as a Site)。 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 -* 性能: 通过预渲染、懒加载大幅提升站点加载速度。 -* 基于 mdx: 支持在 markdown 中书写 React 组件、数学公式等。 -* 搜索引擎优化: 支持 SEO, 让文档更易被搜索。相关文档: [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) -* 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 +* 性能: 通过`预渲染`、`懒加载`大幅提升站点加载速度。 +* 基于 mdx: 支持在 markdown 中`书写 React 组件`、数学公式等。 +* 搜索引擎优化: `支持 SEO`, 让文档更易被搜索。相关文档: [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) +* 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E4%B8%BB%E9%A2%98/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 > [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) diff --git a/config.yml b/config.yml index c4ea3314..263d32ee 100644 --- a/config.yml +++ b/config.yml @@ -15,7 +15,6 @@ menu: [ docs/书写组件.md, docs/数学公式.md, docs/高阶用法.md, - docs/忽略文件.md ] ## set init open menu keys # menuOpenKeys: diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index e8da6f21..cdf78121 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -96,7 +96,7 @@ program.markdownPaths.forEach((item) => { }) if (isExists) { - fs.ensureDirSync(cacheDirPath) + // fs.ensureDirSync(cacheDirPath) initCache(program, () => { if (build) { Build(program) From c2e60a2000a293a1e8d6ef510c066e504e754e4a Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 10 Jun 2021 13:05:08 +0800 Subject: [PATCH 235/352] chore: publish --- lerna.json | 2 +- packages/create-react-doc/package.json | 6 +++--- packages/scripts/package.json | 4 ++-- packages/theme/package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lerna.json b/lerna.json index 4c98ae48..0b5ca65c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.2.0", + "version": "1.3.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 5dbb4206..bbd02c42 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.2.0", + "version": "1.3.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.2.0", + "crd-scripts": "^1.3.0", "crd-templates": "^1.0.0", - "crd-theme": "^1.1.3", + "crd-theme": "^1.3.0", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 207d2ba4..1bda2018 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.2.0", + "version": "1.3.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -25,7 +25,7 @@ "copy-template-dir": "^1.3.0", "crd-generator-sitemap": "^1.1.3", "crd-prerender-spa-plugin": "^0.2.0", - "crd-theme": "^1.1.3", + "crd-theme": "^1.3.0", "crd-utils": "^1.1.3", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/theme/package.json b/packages/theme/package.json index 3cb4c704..8bd29f28 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.1.3", + "version": "1.3.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 44345f18137560556f72851ba928e6448b53ffab Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 10 Jun 2021 23:30:05 +0800 Subject: [PATCH 236/352] feat: create-react-doc support MDX --- packages/create-react-doc/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index cdf78121..fff787d4 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -10,7 +10,7 @@ const { Servers, Build, } = require('crd-scripts') -const { docsReadme, cacheDirPath, docsBuildDist, getDocsConfig } = require('crd-utils') +const { docsReadme, docsBuildDist, getDocsConfig } = require('crd-utils') const input = require('@inquirer/input') const pkg = require('./package.json') @@ -96,7 +96,6 @@ program.markdownPaths.forEach((item) => { }) if (isExists) { - // fs.ensureDirSync(cacheDirPath) initCache(program, () => { if (build) { Build(program) From 7aecc1996b4246f8b67e193c24756cd93eaabddc Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 11 Jun 2021 18:30:31 +0800 Subject: [PATCH 237/352] feat: update --- lerna.json | 2 +- packages/create-react-doc/package.json | 2 +- packages/scripts/package.json | 2 +- packages/theme/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lerna.json b/lerna.json index 0b5ca65c..d670793f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.3.1", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index bbd02c42..020a549c 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.3.0", + "version": "1.3.1", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 1bda2018..615831c7 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.3.0", + "version": "1.3.1", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/theme/package.json b/packages/theme/package.json index 8bd29f28..98558381 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.3.0", + "version": "1.3.1", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 51409fa73c3cec867e1a7c2e79f7052df481069f Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 12 Jun 2021 09:29:16 +0800 Subject: [PATCH 238/352] chore: publish --- lerna.json | 2 +- packages/create-react-doc/package.json | 6 +++--- packages/scripts/package.json | 4 ++-- packages/theme/package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lerna.json b/lerna.json index d670793f..0858be95 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.1", + "version": "1.3.2", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 020a549c..16986f3f 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.3.1", + "version": "1.3.2", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.3.0", + "crd-scripts": "^1.3.2", "crd-templates": "^1.0.0", - "crd-theme": "^1.3.0", + "crd-theme": "^1.3.2", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 615831c7..90d98462 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.3.1", + "version": "1.3.2", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -25,7 +25,7 @@ "copy-template-dir": "^1.3.0", "crd-generator-sitemap": "^1.1.3", "crd-prerender-spa-plugin": "^0.2.0", - "crd-theme": "^1.3.0", + "crd-theme": "^1.3.2", "crd-utils": "^1.1.3", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/theme/package.json b/packages/theme/package.json index 98558381..9c26accb 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.3.1", + "version": "1.3.2", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 3b83b0952147b728cc743d2997b9f4393e82d782 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 17 Jun 2021 18:57:41 +0800 Subject: [PATCH 239/352] feat: optimize build output with webpack --- packages/scripts/src/build.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/scripts/src/build.js b/packages/scripts/src/build.js index 0d1ba2fe..baa3b8d6 100644 --- a/packages/scripts/src/build.js +++ b/packages/scripts/src/build.js @@ -12,19 +12,22 @@ module.exports = function serve(program) { const webpackConf = conf(program) const compiler = webpack(webpackConf) compiler.run((err, stats) => { + if (err) { throw err } // 官方输出参数 // https://webpack.js.org/configuration/stats/ // https://github.com/webpack/webpack/issues/538#issuecomment-59586196 /* eslint-disable */ - // console.log(stats.toString({ - // colors: true, - // children: false, - // chunks: false, - // modules: false, - // moduleTrace: false, - // warningsFilter: (warning) => { - // return true - // } - // })); - }); -}; + console.log(stats.toString({ + colors: true, + children: false, + chunks: false, + modules: false, + errors: true, + errorDetails: true, + errorStack: true, + warningsFilter: (warning) => { + return true + } + })) + }) +} From b4c003ee9981b2135c7d7f9affb61389944395a3 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 18 Jun 2021 13:01:16 +0800 Subject: [PATCH 240/352] fix: https://github.com/MuYunyun/create-react-doc/issues/147 --- .../src/conf/createSpareWebpackPlugin.js | 65 ------------------- .../scripts/src/conf/getPrerenderRoutes.js | 2 + packages/scripts/src/conf/webpack.config.js | 2 +- 3 files changed, 3 insertions(+), 66 deletions(-) delete mode 100644 packages/scripts/src/conf/createSpareWebpackPlugin.js diff --git a/packages/scripts/src/conf/createSpareWebpackPlugin.js b/packages/scripts/src/conf/createSpareWebpackPlugin.js deleted file mode 100644 index c1b295e3..00000000 --- a/packages/scripts/src/conf/createSpareWebpackPlugin.js +++ /dev/null @@ -1,65 +0,0 @@ -const PATH = require('path') -const UPATH = require('upath') -const write = require('write') -const fs = require('fs') -const DirectoryTree = require('./node-directory-tree') -const { ifInGitIgnore } = require('../utils/index') - -function getAllWatchPath(arr, pathArr = []) { - arr.forEach((item) => { - if (item.type === 'file') { - const mdfilePathInProject = item.path.replace( - process.cwd() + PATH.sep, - '', - ) - if (!ifInGitIgnore(mdfilePathInProject)) { - pathArr.push(item.path) - } - // eslint-disable-next-line brace-style - } - // todo: gitignore to handle file dir - else if (item.children && item.children.length > 0) { - pathArr.concat(getAllWatchPath(item.children, pathArr)) - } - }) - return pathArr -} - -module.exports = class CopySpareWebpackPlugin { - constructor(options) { - this.option = options - } - apply(compiler) { - compiler.hooks.afterCompile.tapAsync( - this.constructor.name, - (compilation, callback) => { - const { path, sep, directoryTrees } = this.option - const { dir, ...otherOtions } = directoryTrees - let fileItems = [] - if (Array.isArray(dir)) { - fileItems = dir.map(filepath => - DirectoryTree(filepath, otherOtions), - ) - } else { - fileItems = DirectoryTree(dir, otherOtions) - } - const filemds = getAllWatchPath(fileItems) - filemds.forEach((filePathItem) => { - const currentPath = UPATH.normalizeSafe(filePathItem) - if (sep) { - filePathItem = filePathItem - .replace(process.cwd() + PATH.sep, '') - .replace(/\//g, sep) - filePathItem = PATH.resolve(path, filePathItem) - } - if (!fs.existsSync(filePathItem)) { - if (this.addDependency) this.addDependency(currentPath) - const content = fs.readFileSync(currentPath) - write.sync(filePathItem, content) - } - }) - callback() - }, - ) - } -} diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index 26770279..bbca0d11 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -10,12 +10,14 @@ const getPrerenderRoutes = () => { : [] const result = ['/README', '/404'] dfs(menu, result, '', true) + console.log('✅ result', result) return result } const dfs = (arr, result, prefix, isRoot) => { for (let i = 0; i < arr.length; i++) { const source = `${prefix}${arr[i]}` + console.log('source', source) const stats = fs.statSync(source) const isFile = stats.isFile() const isDirectory = stats.isDirectory() diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/scripts/src/conf/webpack.config.js index 92bffd03..49b4c236 100644 --- a/packages/scripts/src/conf/webpack.config.js +++ b/packages/scripts/src/conf/webpack.config.js @@ -3,7 +3,7 @@ const webpack = require('webpack') const webpackbar = require('webpackbar') const fs = require('fs') -const { resolveApp, docsConfig, cacheDirPath, docsBuildDist } = require('crd-utils') +const { resolveApp, docsConfig, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('crd-utils') // const { getSearchContent } = require('../utils'); const remarkMath = require('remark-math') From c1937cb34579e6713906dce918a02fdfd963d53b Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 20 Jun 2021 13:43:32 +0800 Subject: [PATCH 241/352] fix: build loss file --- packages/scripts/src/conf/getPrerenderRoutes.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index bbca0d11..c4742dd5 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -22,6 +22,11 @@ const dfs = (arr, result, prefix, isRoot) => { const isFile = stats.isFile() const isDirectory = stats.isDirectory() + if (isDirectory) { + const dirArr = fs.readdirSync(source) + dfs(dirArr, result, `${source}/`, false) + } + if (isFile && arr[i].indexOf('.md') > -1) { if (isRoot) { // eg: 'a/b.md' @@ -32,11 +37,6 @@ const dfs = (arr, result, prefix, isRoot) => { result.push(`/${prefix}${arr[i].split('.md')[0]}`) } } - - if (isDirectory) { - const dirArr = fs.readdirSync(source) - dfs(dirArr, result, `${source}/`, false) - } } } From 55b27dbf1da92afb73c69bd18f9337fd7b8f3d25 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 20 Jun 2021 18:34:15 +0800 Subject: [PATCH 242/352] fix: build loss file --- .../scripts/src/conf/rawTreeReplaceLoader.js | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/packages/scripts/src/conf/rawTreeReplaceLoader.js b/packages/scripts/src/conf/rawTreeReplaceLoader.js index f4d3d63a..b464a374 100644 --- a/packages/scripts/src/conf/rawTreeReplaceLoader.js +++ b/packages/scripts/src/conf/rawTreeReplaceLoader.js @@ -4,21 +4,21 @@ const DirectoryTree = require('./node-directory-tree') const PATH = require('path') const { ifInGitIgnore } = require('../utils/index') -function getAllWatchPath(arr, pathArr = []) { - arr.forEach((item) => { - const mdfilePathInProject = item.path.replace( - process.cwd() + PATH.sep, - '', - ) - if (!ifInGitIgnore(mdfilePathInProject) && item.type === 'file') { - pathArr.push(item.path) - } - if (item.children && item.children.length > 0) { - pathArr.concat(getAllWatchPath(item.children, pathArr)) - } - }) - return pathArr -} +// function getAllWatchPath(arr, pathArr = []) { +// arr.forEach((item) => { +// const mdfilePathInProject = item.path.replace( +// process.cwd() + PATH.sep, +// '', +// ) +// if (!ifInGitIgnore(mdfilePathInProject) && item.type === 'file') { +// pathArr.push(item.path) +// } +// if (item.children && item.children.length > 0) { +// pathArr.concat(getAllWatchPath(item.children, pathArr)) +// } +// }) +// return pathArr +// } function replacePath(dirs, path) { for (let i = 0; i < dirs.length; i += 1) { @@ -59,17 +59,18 @@ module.exports = function (source) { if (directoryTrees && (!include || include.test(this.resourcePath))) { const dirs = Array.isArray(dir) ? dir : [dir] const dirTree = dirs.map(path => DirectoryTree(path, otherProps)) - content = dirTree + // content = dirTree - const filemd = getAllWatchPath(dirTree) - filemd.forEach((fileItem) => { - this.addDependency(fileItem) - }) + // const filemd = getAllWatchPath(dirTree) + // filemd.forEach((fileItem) => { + // this.addDependency(fileItem) + // }) content = getRelativePath( dirTree, relativePath, dirs, ) + console.log('content', content) } content = JSON.stringify(content) .replace(/\u2028/g, '\\u2028') From e73b646bd1bf66fa2b3c2a3e82e8514a45b3652f Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 21 Jun 2021 19:21:46 +0800 Subject: [PATCH 243/352] fix: build loss file --- packages/scripts/src/conf/rawTreeReplaceLoader.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/scripts/src/conf/rawTreeReplaceLoader.js b/packages/scripts/src/conf/rawTreeReplaceLoader.js index b464a374..811f6904 100644 --- a/packages/scripts/src/conf/rawTreeReplaceLoader.js +++ b/packages/scripts/src/conf/rawTreeReplaceLoader.js @@ -50,12 +50,14 @@ function getRelativePath(arr, relativePath, dirs) { } module.exports = function (source) { + // get option config from webpack loader, here is https://github.com/MuYunyun/create-react-doc/blob/main/packages/scripts/src/conf/webpack.config.prod.js#L61-L70 const options = loaderUtils.getOptions(this) || {} const { include, directoryTrees } = options const { dir, relativePath, ...otherProps } = directoryTrees let content = typeof source === 'string' ? JSON.parse(source) : source - - if (this.cacheable) this.cacheable() + // It's said loader resuls are flagged as cacheable. See https://webpack.js.org/api/loaders/#thiscacheable. + // if (this.cacheable) this.cacheable() + // Todo: https://webpack.js.org/api/loaders/#pitching-loader if (directoryTrees && (!include || include.test(this.resourcePath))) { const dirs = Array.isArray(dir) ? dir : [dir] const dirTree = dirs.map(path => DirectoryTree(path, otherProps)) From 574e9b1b2cd1d7efee5f28da69da2d19a0610703 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 22 Jun 2021 13:35:10 +0800 Subject: [PATCH 244/352] fix: build loss file --- packages/scripts/package.json | 1 - .../scripts/src/conf/rawTreeReplaceLoader.js | 49 ++++++++++--------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 90d98462..4ea3fa2f 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -37,7 +37,6 @@ "gh-pages": "^1.2.0", "html-webpack-plugin": "^4.5.1", "less-loader": "^7.2.1", - "loader-utils": "^2.0.0", "loading-cli": "^1.0.6", "local-ip-url": "^1.0.1", "mini-css-extract-plugin": "^0.4.0", diff --git a/packages/scripts/src/conf/rawTreeReplaceLoader.js b/packages/scripts/src/conf/rawTreeReplaceLoader.js index 811f6904..9d36ddb7 100644 --- a/packages/scripts/src/conf/rawTreeReplaceLoader.js +++ b/packages/scripts/src/conf/rawTreeReplaceLoader.js @@ -1,24 +1,23 @@ -const loaderUtils = require('loader-utils') -// fork https://github.com/react-doc/node-directory-tree-md/blob/master/lib/directory-tree-md.js +// A variation of https://github.com/react-doc/node-directory-tree-md/blob/master/lib/directory-tree-md.js const DirectoryTree = require('./node-directory-tree') const PATH = require('path') const { ifInGitIgnore } = require('../utils/index') -// function getAllWatchPath(arr, pathArr = []) { -// arr.forEach((item) => { -// const mdfilePathInProject = item.path.replace( -// process.cwd() + PATH.sep, -// '', -// ) -// if (!ifInGitIgnore(mdfilePathInProject) && item.type === 'file') { -// pathArr.push(item.path) -// } -// if (item.children && item.children.length > 0) { -// pathArr.concat(getAllWatchPath(item.children, pathArr)) -// } -// }) -// return pathArr -// } +function getAllWatchPath(arr, pathArr = []) { + arr.forEach((item) => { + const mdfilePathInProject = item.path.replace( + process.cwd() + PATH.sep, + '', + ) + if (!ifInGitIgnore(mdfilePathInProject) && item.type === 'file') { + pathArr.push(item.path) + } + if (item.children && item.children.length > 0) { + pathArr.concat(getAllWatchPath(item.children, pathArr)) + } + }) + return pathArr +} function replacePath(dirs, path) { for (let i = 0; i < dirs.length; i += 1) { @@ -51,7 +50,7 @@ function getRelativePath(arr, relativePath, dirs) { module.exports = function (source) { // get option config from webpack loader, here is https://github.com/MuYunyun/create-react-doc/blob/main/packages/scripts/src/conf/webpack.config.prod.js#L61-L70 - const options = loaderUtils.getOptions(this) || {} + const options = this.getOptions() || {} const { include, directoryTrees } = options const { dir, relativePath, ...otherProps } = directoryTrees let content = typeof source === 'string' ? JSON.parse(source) : source @@ -60,19 +59,23 @@ module.exports = function (source) { // Todo: https://webpack.js.org/api/loaders/#pitching-loader if (directoryTrees && (!include || include.test(this.resourcePath))) { const dirs = Array.isArray(dir) ? dir : [dir] + // todo: white some logic about route relative in getRelativePath const dirTree = dirs.map(path => DirectoryTree(path, otherProps)) + // if (Array.isArray(dirTree)) { + // console.log('dirTree', dirTree[3] && dirTree[3].children) + // } // content = dirTree - // const filemd = getAllWatchPath(dirTree) - // filemd.forEach((fileItem) => { - // this.addDependency(fileItem) - // }) + const filemd = getAllWatchPath(dirTree) + filemd.forEach((fileItem) => { + this.addDependency(fileItem) + }) content = getRelativePath( dirTree, relativePath, dirs, ) - console.log('content', content) + // console.log('content', content) } content = JSON.stringify(content) .replace(/\u2028/g, '\\u2028') From c813a60fef959d76c2e5bdcc3fb9f3d44f70b30d Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 23 Jun 2021 19:10:36 +0800 Subject: [PATCH 245/352] fix: build loss file --- .../scripts/src/conf/getPrerenderRoutes.js | 20 ++++++++-- .../scripts/src/conf/node-directory-tree.js | 37 +++++++++++++------ .../scripts/src/conf/rawTreeReplaceLoader.js | 5 ++- .../scripts/src/conf/webpack.config.prod.js | 2 +- packages/scripts/src/utils/initCache.js | 9 +++-- 5 files changed, 54 insertions(+), 19 deletions(-) diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index c4742dd5..5187f627 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -1,23 +1,37 @@ const fs = require('fs') const { getDocsConfig } = require('crd-utils') +const DirectoryTree = require('./node-directory-tree') // eg: ['docs/quick_start.md', 'a'] // output: ['/quick_start', '/a/b', '/a/b/c'] -const getPrerenderRoutes = () => { +const getPrerenderRoutes = (cmd) => { + const dir = cmd.markdownPaths + console.log('dir123', dir) + const dirs = Array.isArray(dir) ? dir : [dir] + const otherProps = { + mdconf: true, + extensions: /\.md/, + prerender: true, + } + const dirTree = dirs.map(path => DirectoryTree({ + path, + options: otherProps, + })) + console.log('dirTree123', dirTree) const docsConfig = getDocsConfig() const menu = docsConfig && Array.isArray(docsConfig.menu) ? docsConfig.menu : [] const result = ['/README', '/404'] dfs(menu, result, '', true) - console.log('✅ result', result) + // console.log('✅ result', result) return result } const dfs = (arr, result, prefix, isRoot) => { for (let i = 0; i < arr.length; i++) { const source = `${prefix}${arr[i]}` - console.log('source', source) + // console.log('source', source) const stats = fs.statSync(source) const isFile = stats.isFile() const isDirectory = stats.isDirectory() diff --git a/packages/scripts/src/conf/node-directory-tree.js b/packages/scripts/src/conf/node-directory-tree.js index da948025..4fac4b6b 100644 --- a/packages/scripts/src/conf/node-directory-tree.js +++ b/packages/scripts/src/conf/node-directory-tree.js @@ -37,7 +37,20 @@ function safeReadDirSync(path) { return dirData } -function directoryTree(path, options, onEachFile) { +/** + * build directory Tree, fork from https://github.com/mihneadb/node-directory-tree + * path: path for file + * options: { + * exclude: RegExp|RegExp[] - A RegExp or an array of RegExp to test for exclusion of directories. + * extensions : RegExp - A RegExp to test for exclusion of files with the matching extension. + * mdconf: boolean + * prerender: boolean use for prerender + * } + */ +function directoryTree({ + path, + options, +}) { const name = PATH.basename(path) const item = { path, name } let stats @@ -56,7 +69,7 @@ function directoryTree(path, options, onEachFile) { // Skip if it does not match the extension regex if (options && options.extensions && !options.extensions.test(ext)) { return null } - if (options && options.mdconf) { + if (options && options.mdconf && !options.prerender) { const contentStr = fs.readFileSync(path).toString() if (contentStr) { const contentMatch = contentStr.match(/^/) @@ -85,13 +98,10 @@ function directoryTree(path, options, onEachFile) { console.log(`error: ${error.message}`) } } - } - item.size = stats.size // File size in bytes - item.extension = ext - item.type = constants.FILE - if (onEachFile) { - onEachFile(item, PATH) + item.size = stats.size // File size in bytes + item.extension = ext + item.type = constants.FILE } } else if (stats.isDirectory()) { const dirData = safeReadDirSync(path) @@ -99,11 +109,16 @@ function directoryTree(path, options, onEachFile) { item.children = dirData .map(child => - directoryTree(PATH.join(path, child), options, onEachFile), + directoryTree({ + path: PATH.join(path, child), + options, + }), ) .filter(e => !!e) - item.size = item.children.reduce((prev, cur) => prev + cur.size, 0) - item.type = constants.DIRECTORY + if (!options.prerender) { + item.size = item.children.reduce((prev, cur) => prev + cur.size, 0) + item.type = constants.DIRECTORY + } } else { return null // Or set item.size = 0 for devices, FIFO and sockets ? } diff --git a/packages/scripts/src/conf/rawTreeReplaceLoader.js b/packages/scripts/src/conf/rawTreeReplaceLoader.js index 9d36ddb7..ed42e315 100644 --- a/packages/scripts/src/conf/rawTreeReplaceLoader.js +++ b/packages/scripts/src/conf/rawTreeReplaceLoader.js @@ -60,7 +60,10 @@ module.exports = function (source) { if (directoryTrees && (!include || include.test(this.resourcePath))) { const dirs = Array.isArray(dir) ? dir : [dir] // todo: white some logic about route relative in getRelativePath - const dirTree = dirs.map(path => DirectoryTree(path, otherProps)) + const dirTree = dirs.map(path => DirectoryTree({ + path, + options: otherProps, + })) // if (Array.isArray(dirTree)) { // console.log('dirTree', dirTree[3] && dirTree[3].children) // } diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 631397b4..60356338 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -121,7 +121,7 @@ module.exports = function (cmd) { // ], } - const routes = getPrerenderRoutes() + const routes = getPrerenderRoutes(cmd) config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ diff --git a/packages/scripts/src/utils/initCache.js b/packages/scripts/src/utils/initCache.js index de31ed6c..eedf393c 100644 --- a/packages/scripts/src/utils/initCache.js +++ b/packages/scripts/src/utils/initCache.js @@ -5,9 +5,12 @@ const DirectoryTree = require('../conf/node-directory-tree') module.exports = function (program, cb) { const treeData = program.markdownPaths.map((markdownPath) => { - return DirectoryTree(markdownPath, { - mdconf: true, // Markdown config for exsiting file. - extensions: /\.md/, + return DirectoryTree({ + path: markdownPath, + options: { + mdconf: true, // Markdown config for exsiting file. + extensions: /\.md/, + }, }) }) // to collect search data From 8cc86747404704ca0066d3737297c8e65911085c Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 24 Jun 2021 09:38:09 +0800 Subject: [PATCH 246/352] fix: https://github.com/MuYunyun/create-react-doc/issues/147 --- ...64\346\226\260\346\227\245\345\277\227.md" | 10 +++- .../scripts/src/conf/getPrerenderRoutes.js | 50 +++++++------------ .../scripts/src/conf/node-directory-tree.js | 18 ++++--- .../scripts/src/conf/rawTreeReplaceLoader.js | 8 +-- 4 files changed, 39 insertions(+), 47 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index fecc3e11..68d464d7 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,9 +2,17 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.3.3 + +`2021-06-24` + +- **Fix** + + - 🐞 修复编译预渲染时, 缺少多层级目录文件生成的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/147)。 + ### 1.3.0 -`2020-06-09` +`2021-06-09` - **Feature** diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index 5187f627..7be77bf2 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -1,12 +1,9 @@ -const fs = require('fs') -const { getDocsConfig } = require('crd-utils') const DirectoryTree = require('./node-directory-tree') // eg: ['docs/quick_start.md', 'a'] // output: ['/quick_start', '/a/b', '/a/b/c'] const getPrerenderRoutes = (cmd) => { const dir = cmd.markdownPaths - console.log('dir123', dir) const dirs = Array.isArray(dir) ? dir : [dir] const otherProps = { mdconf: true, @@ -17,41 +14,32 @@ const getPrerenderRoutes = (cmd) => { path, options: otherProps, })) - console.log('dirTree123', dirTree) - const docsConfig = getDocsConfig() - const menu = docsConfig && Array.isArray(docsConfig.menu) - ? docsConfig.menu - : [] - const result = ['/README', '/404'] - dfs(menu, result, '', true) - // console.log('✅ result', result) + const result = getPrerenderRoute(dirTree) + result.push('/404') + // console.log('✅ prerender', result) return result } -const dfs = (arr, result, prefix, isRoot) => { - for (let i = 0; i < arr.length; i++) { - const source = `${prefix}${arr[i]}` - // console.log('source', source) - const stats = fs.statSync(source) - const isFile = stats.isFile() - const isDirectory = stats.isDirectory() - - if (isDirectory) { - const dirArr = fs.readdirSync(source) - dfs(dirArr, result, `${source}/`, false) - } +function getPrerenderRoute(data) { + const arr = [] + return recursive(data, '', arr) +} - if (isFile && arr[i].indexOf('.md') > -1) { - if (isRoot) { - // eg: 'a/b.md' - const splitArr = arr[i].split('/') - const lastSplitValue = splitArr[splitArr.length - 1] - result.push(`/${lastSplitValue.split('.md')[0]}`) +function recursive(data, routePath, arr) { + data.forEach((item) => { + const routePropsCurrent = `${routePath}/${item.name}`.replace(/.md$/, '') + if (item.type === 'directory') { + if (item.children && item.children.length > 0) { + // eslint-disable-next-line no-unused-vars + item.children = recursive(item.children, routePropsCurrent, arr) } else { - result.push(`/${prefix}${arr[i].split('.md')[0]}`) + item.children = [] } + } else if (item.type === 'file') { + arr.push(routePropsCurrent) } - } + }) + return arr } module.exports = getPrerenderRoutes diff --git a/packages/scripts/src/conf/node-directory-tree.js b/packages/scripts/src/conf/node-directory-tree.js index 4fac4b6b..a96b2153 100644 --- a/packages/scripts/src/conf/node-directory-tree.js +++ b/packages/scripts/src/conf/node-directory-tree.js @@ -52,7 +52,10 @@ function directoryTree({ options, }) { const name = PATH.basename(path) - const item = { path, name } + const item = { name } + if (!options.prerender) { + item.path = path + } let stats try { stats = fs.statSync(path) @@ -69,9 +72,10 @@ function directoryTree({ // Skip if it does not match the extension regex if (options && options.extensions && !options.extensions.test(ext)) { return null } - if (options && options.mdconf && !options.prerender) { + if (options && options.mdconf) { + item.type = constants.FILE const contentStr = fs.readFileSync(path).toString() - if (contentStr) { + if (contentStr && !options.prerender) { const contentMatch = contentStr.match(/^/) item.relative = item.path.replace(process.cwd(), '') item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} @@ -97,11 +101,9 @@ function directoryTree({ // eslint-disable-next-line no-console console.log(`error: ${error.message}`) } + item.size = stats.size // File size in bytes + item.extension = ext } - - item.size = stats.size // File size in bytes - item.extension = ext - item.type = constants.FILE } } else if (stats.isDirectory()) { const dirData = safeReadDirSync(path) @@ -115,9 +117,9 @@ function directoryTree({ }), ) .filter(e => !!e) + item.type = constants.DIRECTORY if (!options.prerender) { item.size = item.children.reduce((prev, cur) => prev + cur.size, 0) - item.type = constants.DIRECTORY } } else { return null // Or set item.size = 0 for devices, FIFO and sockets ? diff --git a/packages/scripts/src/conf/rawTreeReplaceLoader.js b/packages/scripts/src/conf/rawTreeReplaceLoader.js index ed42e315..0f53702e 100644 --- a/packages/scripts/src/conf/rawTreeReplaceLoader.js +++ b/packages/scripts/src/conf/rawTreeReplaceLoader.js @@ -56,29 +56,23 @@ module.exports = function (source) { let content = typeof source === 'string' ? JSON.parse(source) : source // It's said loader resuls are flagged as cacheable. See https://webpack.js.org/api/loaders/#thiscacheable. // if (this.cacheable) this.cacheable() - // Todo: https://webpack.js.org/api/loaders/#pitching-loader if (directoryTrees && (!include || include.test(this.resourcePath))) { const dirs = Array.isArray(dir) ? dir : [dir] - // todo: white some logic about route relative in getRelativePath const dirTree = dirs.map(path => DirectoryTree({ path, options: otherProps, })) - // if (Array.isArray(dirTree)) { - // console.log('dirTree', dirTree[3] && dirTree[3].children) - // } - // content = dirTree const filemd = getAllWatchPath(dirTree) filemd.forEach((fileItem) => { this.addDependency(fileItem) }) + // replace full file path with relative path content = getRelativePath( dirTree, relativePath, dirs, ) - // console.log('content', content) } content = JSON.stringify(content) .replace(/\u2028/g, '\\u2028') From f817c4ebe264a7b184ec26b03cab7b248747e224 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 26 Jun 2021 09:31:06 +0800 Subject: [PATCH 247/352] chore: publish --- lerna.json | 2 +- packages/create-react-doc/package.json | 4 ++-- packages/scripts/package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lerna.json b/lerna.json index 0858be95..2ef19f84 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.2", + "version": "1.3.3", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 16986f3f..c5568821 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.3.2", + "version": "1.3.3", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.3.2", + "crd-scripts": "^1.3.3", "crd-templates": "^1.0.0", "crd-theme": "^1.3.2", "fs-extra": "^5.0.0" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 4ea3fa2f..ba31e65e 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.3.2", + "version": "1.3.3", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { From 7fc320b6ca23f28a2e8d1b7815e569eafc84f85e Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 27 Jun 2021 23:40:52 +0800 Subject: [PATCH 248/352] fix: https://github.com/MuYunyun/create-react-doc/issues/157 --- ...64\346\226\260\346\227\245\345\277\227.md" | 8 +++++ packages/crd-generator-sitemap/generate.js | 5 ++- packages/create-react-doc/README.md | 6 +++- packages/scripts/src/commands/initProject.js | 35 +++++++++++-------- 4 files changed, 35 insertions(+), 19 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 68d464d7..91d747f7 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,6 +2,14 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.3.4 + +`2021-06-27` + +- **Fix** + + - 🐞 修复 npx create-react-doc doc 初始化生成文档项目报错的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/157)。 + ### 1.3.3 `2021-06-24` diff --git a/packages/crd-generator-sitemap/generate.js b/packages/crd-generator-sitemap/generate.js index cc335ee3..bbee11d5 100644 --- a/packages/crd-generator-sitemap/generate.js +++ b/packages/crd-generator-sitemap/generate.js @@ -10,9 +10,6 @@ const { getDocsConfig } = require('crd-utils') const docsConfig = getDocsConfig() -const domain = docsConfig.domain -const repo = docsConfig.repo - const template = content => ` @@ -24,6 +21,8 @@ const template = content => * generate sitemap for google. */ const generateSiteMap = (routes) => { + const domain = docsConfig && docsConfig.domain + const repo = docsConfig && docsConfig.repo let content = '' for (let i = 0; i < routes.length; i++) { if (i === routes.length - 1) { diff --git a/packages/create-react-doc/README.md b/packages/create-react-doc/README.md index 293ea2f1..3ab9406f 100644 --- a/packages/create-react-doc/README.md +++ b/packages/create-react-doc/README.md @@ -19,4 +19,8 @@ $ react-doc doc // 在当前文件夹下创建名为 doc 的文档站点 $ react-doc start // 启动项目 $ react-doc build // 项目打包 $ react-doc deploy // 手动发布项目 -``` \ No newline at end of file +``` + +# 调试 + +进入该目录, 执行 yarn link, 即可在全局使用 react-doc xxx 命令。 \ No newline at end of file diff --git a/packages/scripts/src/commands/initProject.js b/packages/scripts/src/commands/initProject.js index 1668d457..d5d423e5 100644 --- a/packages/scripts/src/commands/initProject.js +++ b/packages/scripts/src/commands/initProject.js @@ -1,7 +1,7 @@ const path = require('path') const { execSync } = require('child_process') const fs = require('fs-extra') -const { templatePath } = require('crd-utils') +const { templatePath, resolveApp } = require('crd-utils') const copyTemplate = require('copy-template-dir') const paths = require('../conf/path') @@ -28,19 +28,24 @@ module.exports = function (params) { if (!fs.pathExistsSync(defaultTemplatePath)) { execSync('mkdir temp && cd temp && yarn add crd-templates -D') } - copyTemplate(defaultTemplatePath, outDir, { - name: projectName, - crdVersion: CRD_VERSION, - }, (err, createdFiles) => { - if (err) return log(`Copy Tamplate Error: ${err} !!!`.red) - createdFiles.sort().forEach((createdFile) => { - log(` ${'create'.green} ${createdFile.replace(paths.projectPath, '')}`) + const templatePathInTemp = resolveApp('temp/node_modules/crd-templates/default') + if (fs.pathExistsSync(templatePathInTemp)) { + copyTemplate(templatePathInTemp, outDir, { + name: projectName, + crdVersion: CRD_VERSION, + }, (err, createdFiles) => { + if (err) return log(`Copy Tamplate Error: ${err} !!!`.red) + createdFiles.sort().forEach((createdFile) => { + log(` ${'create'.green} ${createdFile.replace(paths.projectPath, '')}`) + }) + // to hack https://github.com/yoshuawuyts/copy-template-dir/issues/16 + execSync(`cp -r ${templatePathInTemp}/.github ${outDir}`) + execSync('rm -rf temp') + log('\n initialization finished!\n'.green) + const cmdstr = `cd ${projectName} && yarn && yarn start`.cyan + log(` Run the ${cmdstr} to start the website.\n\n`) }) - // this is to hack https://github.com/yoshuawuyts/copy-template-dir/issues/16 - execSync(`cp -r ${defaultTemplatePath}/.github ${outDir}`) - execSync('rm -rf temp') - log('\n initialization finished!\n'.green) - const cmdstr = `cd ${projectName} && yarn && yarn start`.cyan - log(` Run the ${cmdstr} to start the website.\n\n`) - }) + } else { + log(` ❎ crd-templates install fail.\n\n`) + } } From 013b68ea6f8f91de616209fc0be28ac5f0619791 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 27 Jun 2021 23:42:49 +0800 Subject: [PATCH 249/352] chore: publish --- lerna.json | 2 +- packages/crd-generator-sitemap/package.json | 2 +- packages/create-react-doc/package.json | 4 ++-- packages/scripts/package.json | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lerna.json b/lerna.json index 2ef19f84..661aa325 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.3", + "version": "1.3.4", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-generator-sitemap/package.json b/packages/crd-generator-sitemap/package.json index ca80ea0a..689aa18d 100644 --- a/packages/crd-generator-sitemap/package.json +++ b/packages/crd-generator-sitemap/package.json @@ -1,6 +1,6 @@ { "name": "crd-generator-sitemap", - "version": "1.1.3", + "version": "1.3.4", "description": "generator sitemap for create-react-doc", "main": "index.js", "repository": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index c5568821..39546bc7 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.3.3", + "version": "1.3.4", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.3.3", + "crd-scripts": "^1.3.4", "crd-templates": "^1.0.0", "crd-theme": "^1.3.2", "fs-extra": "^5.0.0" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index ba31e65e..dc6173af 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.3.3", + "version": "1.3.4", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -23,7 +23,7 @@ "colors-cli": "^1.0.13", "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", - "crd-generator-sitemap": "^1.1.3", + "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", "crd-theme": "^1.3.2", "crd-utils": "^1.1.3", From a4a394176e3d1924310819b565e9df47d27ceae8 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 24 Sep 2021 13:18:45 +0800 Subject: [PATCH 250/352] fix: template --- ...52\345\256\232\344\271\211\344\270\273\351\242\230.md" | 2 +- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/templates/default/_config.yml | 2 +- packages/templates/theme/default/_config.yml | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git "a/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" index 04f91190..37f96be7 100644 --- "a/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" @@ -87,7 +87,7 @@ interface CustomThemeProps { 比如 `config.yml` 配置如下所示: ```bash -menu: Introduction +menu: ['Introduction'] theme: crd-seed user: muyunyun repo: https://github.com/MuYunyun/create-react-doc diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 91d747f7..538bd600 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,6 +2,14 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.3.5 + +`2021-09-24` + +- **Fix** + + - 🐞 修复初始化模板 menu 参数类型错误的问题。 + ### 1.3.4 `2021-06-27` diff --git a/packages/templates/default/_config.yml b/packages/templates/default/_config.yml index 44d3b8a4..36393c22 100644 --- a/packages/templates/default/_config.yml +++ b/packages/templates/default/_config.yml @@ -5,7 +5,7 @@ # Menu dir ## you can also set detailed dir, such as BasicSkill/css -menu: Introduction +menu: ['Introduction'] ## set init open menu keys # menuOpenKeys: diff --git a/packages/templates/theme/default/_config.yml b/packages/templates/theme/default/_config.yml index bc172229..c8c018e5 100644 --- a/packages/templates/theme/default/_config.yml +++ b/packages/templates/theme/default/_config.yml @@ -5,7 +5,7 @@ # Menu dir ## you can also set detailed dir, such as BasicSkill/css -menu: Introduction +menu: ['Introduction'] ## set init open menu keys # menuOpenKeys: From b42c0205b8664d17b3529cf04e55f231cb938db5 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 24 Sep 2021 23:20:30 +0800 Subject: [PATCH 251/352] fix: https://github.com/MuYunyun/create-react-doc/issues/182 --- "docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" | 3 ++- packages/scripts/src/conf/webpack.config.prod.js | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 538bd600..25221f43 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -8,7 +8,8 @@ - **Fix** - - 🐞 修复初始化模板 menu 参数类型错误的问题。 + - 🐞 修复路由过多时导致预渲染编译超时的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/182) + - 🐞 修复初始化模板 menu 参数类型错误的问题。[mr](https://github.com/MuYunyun/create-react-doc/pull/181) ### 1.3.4 diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 60356338..f17e3ae4 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -189,6 +189,10 @@ module.exports = function (cmd) { // Routes are rendered asynchronously. // Use this to limit the number of routes rendered in parallel. maxConcurrentRoutes: 4, + // https://pptr.dev/#?product=Puppeteer&version=v5.5.0&show=api-pagegotourl-options + navigationOptions: { + timeout: 0 + } }), }), ]) From 4dc59cf5290685912ff097876ddd3bb804d78b29 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 24 Sep 2021 23:31:23 +0800 Subject: [PATCH 252/352] chore: publish --- lerna.json | 2 +- packages/create-react-doc/package.json | 6 +++--- packages/scripts/package.json | 2 +- packages/templates/package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lerna.json b/lerna.json index 661aa325..f149f5ba 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.4", + "version": "1.3.5", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 39546bc7..58269946 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.3.4", + "version": "1.3.5", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,8 +26,8 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.3.4", - "crd-templates": "^1.0.0", + "crd-scripts": "^1.3.5", + "crd-templates": "^1.3.5", "crd-theme": "^1.3.2", "fs-extra": "^5.0.0" }, diff --git a/packages/scripts/package.json b/packages/scripts/package.json index dc6173af..a23d6ec9 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.3.4", + "version": "1.3.5", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/templates/package.json b/packages/templates/package.json index 4890c43e..3df89495 100644 --- a/packages/templates/package.json +++ b/packages/templates/package.json @@ -1,6 +1,6 @@ { "name": "crd-templates", - "version": "1.0.0", + "version": "1.3.5", "description": "Default Templates with Create React Doc", "repository": { "type": "git", From 954f7cdb846eb56fe7eb6f3fe61f5b2dc20b5037 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 6 Oct 2021 13:45:53 +0800 Subject: [PATCH 253/352] feat: support frontmatter --- ...53\351\200\237\344\270\212\346\211\213.md" | 6 +++++ packages/crd-seed/component/Menu/MenuItem.js | 3 +++ packages/crd-seed/layout/index.js | 22 +++++++++++++------ .../scripts/src/conf/node-directory-tree.js | 3 ++- .../scripts/src/conf/webpack.config.prod.js | 20 ++++++++++++++--- packages/scripts/src/web/Router.js | 1 - 6 files changed, 43 insertions(+), 12 deletions(-) diff --git "a/docs/\345\277\253\351\200\237\344\270\212\346\211\213.md" "b/docs/\345\277\253\351\200\237\344\270\212\346\211\213.md" index eb9fec16..5ca9254d 100644 --- "a/docs/\345\277\253\351\200\237\344\270\212\346\211\213.md" +++ "b/docs/\345\277\253\351\200\237\344\270\212\346\211\213.md" @@ -1,3 +1,9 @@ + + ## 快速上手 **create-react-doc** 非常容易上手。开发者不需要额外安装或配置 webpack 或者 Babel 等工具,它们被内置隐藏在脚手架中,因此开发者可以专心于文档的书写。 diff --git a/packages/crd-seed/component/Menu/MenuItem.js b/packages/crd-seed/component/Menu/MenuItem.js index 826e886b..f1d68157 100644 --- a/packages/crd-seed/component/Menu/MenuItem.js +++ b/packages/crd-seed/component/Menu/MenuItem.js @@ -16,6 +16,9 @@ function MenuItem({ } const renderMenuItem = () => { + if (selectedKey === '/290a4219') { + debugger + } return (
  • {menus.map((item, index) => { + const { mdconf, routePath } = item || {} + const { abbrlink } = mdconf || {} + const path = abbrlink ? `/${abbrlink}` : routePath + console.log('item123', item) // item.path carrys .md here. return item.children && item.children.length > 0 ? ( }> @@ -65,7 +69,7 @@ function BasicLayout({ } - keyValue={item.path} + keyValue={abbrlink ? `/${abbrlink}` : item.path} title={ item && item.type === "directory" && @@ -76,8 +80,8 @@ function BasicLayout({ ) : ( -1} + to={ifProd ? `/${repo}${path}` : path} + replace={pathname.indexOf(path) > -1} > {item && item.mdconf && item.mdconf.title ? item.mdconf.title @@ -111,6 +115,7 @@ function BasicLayout({ }} selectedKey={selectedKey} onSelect={(keyValue) => { + console.log('keyValue', keyValue) setSelectedKey(keyValue) }} defaultOpenKeys={curOpenKeys} @@ -217,13 +222,16 @@ function BasicLayout({ {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} {routeData.map((item) => { + const { path, mdconf, component } = item + const { abbrlink } = mdconf + const enhancePath = abbrlink ? `/${abbrlink}` : path return ( { - const Comp = item.component + const Comp = component return }} /> @@ -255,7 +263,7 @@ function BasicLayout({
  • - ); + ) } export default BasicLayout diff --git a/packages/scripts/src/conf/node-directory-tree.js b/packages/scripts/src/conf/node-directory-tree.js index a96b2153..9ebd88b1 100644 --- a/packages/scripts/src/conf/node-directory-tree.js +++ b/packages/scripts/src/conf/node-directory-tree.js @@ -76,9 +76,10 @@ function directoryTree({ item.type = constants.FILE const contentStr = fs.readFileSync(path).toString() if (contentStr && !options.prerender) { - const contentMatch = contentStr.match(/^/) + const contentMatch = contentStr.match(/^/) item.relative = item.path.replace(process.cwd(), '') item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} + console.log('item.mdconf', item.mdconf) item.isEmpty = contentMatch ? !String.prototype.trim.call(contentStr.replace(contentMatch[0], '')) : true diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index f17e3ae4..273da66a 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -123,6 +123,11 @@ module.exports = function (cmd) { const routes = getPrerenderRoutes(cmd) + console.log('docsConfig.repo', docsConfig.repo,) + console.log('outputDir', docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist,) + console.log('indexPath', docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}/index.html` : `${docsBuildDist}/index.html`,) + console.log('routes', routes) + config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('prod'), @@ -156,10 +161,19 @@ module.exports = function (cmd) { new PrerenderSPAPlugin({ // Required - The path to the webpack-outputted app to prerender. staticDir: docsBuildDist, - outputDir: docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist, - indexPath: docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}/index.html` : `${docsBuildDist}/index.html`, + outputDir: docsConfig.repo + ? `${docsBuildDist}/${docsConfig.repo}` + : docsBuildDist, + indexPath: docsConfig.repo + ? `${docsBuildDist}/${docsConfig.repo}/index.html` + : `${docsBuildDist}/index.html`, // Required - Routes to render. - routes, + // routes, + routes: [ + '/README', '/快速上手', + '/hijkl', '/mnopq', + '/404' + ], successCb: async () => { if (docsConfig.repo) { // not use fs.move here or it'll throw error in github action diff --git a/packages/scripts/src/web/Router.js b/packages/scripts/src/web/Router.js index bd285968..8f15144b 100644 --- a/packages/scripts/src/web/Router.js +++ b/packages/scripts/src/web/Router.js @@ -23,7 +23,6 @@ function routeData(data, arrayRoute = [], routePath = '/', article) { return arrayRoute } - function menuSourceFormat(data, routePath, article) { const arr = [] data.forEach((item) => { From 28538adc73b40dbd0a6c7e7add0ad3a091a11f7c Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 6 Oct 2021 18:56:08 +0800 Subject: [PATCH 254/352] feat: run short link in dev --- ...\252\345\256\232\344\271\211\344\270\273\351\242\230.md" | 6 ++++++ .../\351\273\230\350\256\244\344\270\273\351\242\230.md" | 6 ++++++ packages/crd-seed/component/Menu/MenuItem.js | 3 --- packages/crd-seed/layout/index.js | 4 ++-- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git "a/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" index 37f96be7..a293c564 100644 --- "a/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md" @@ -1,3 +1,9 @@ + + ## 使用自定义主题 切换主题非常简单, 只需要将根目录文件 `config.yml` 中的 `theme` 更改为您想使用的主题即可。 diff --git "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 84394647..d1a9fd7d 100644 --- "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -1,3 +1,9 @@ + + ## 默认主题 create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题有以下特性: diff --git a/packages/crd-seed/component/Menu/MenuItem.js b/packages/crd-seed/component/Menu/MenuItem.js index f1d68157..826e886b 100644 --- a/packages/crd-seed/component/Menu/MenuItem.js +++ b/packages/crd-seed/component/Menu/MenuItem.js @@ -16,9 +16,6 @@ function MenuItem({ } const renderMenuItem = () => { - if (selectedKey === '/290a4219') { - debugger - } return (
  • { const newPathName = location.pathname - setSelectedKey(`${newPathName}.md`) + // setSelectedKey(`${newPathName}.md`) + setSelectedKey(newPathName) }, location) const scrollToTop = () => { @@ -59,7 +60,6 @@ function BasicLayout({ const { mdconf, routePath } = item || {} const { abbrlink } = mdconf || {} const path = abbrlink ? `/${abbrlink}` : routePath - console.log('item123', item) // item.path carrys .md here. return item.children && item.children.length > 0 ? ( }> From 0790fb65e5d14465aaa682e3d5f2fa8c4af794c9 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 7 Oct 2021 13:34:39 +0800 Subject: [PATCH 255/352] feat: support frontmatter --- packages/scripts/src/conf/getPrerenderRoutes.js | 1 + packages/scripts/src/conf/node-directory-tree.js | 2 ++ packages/scripts/src/conf/webpack.config.prod.js | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index 7be77bf2..7e652907 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -14,6 +14,7 @@ const getPrerenderRoutes = (cmd) => { path, options: otherProps, })) + console.log('dirTree12345', dirTree) const result = getPrerenderRoute(dirTree) result.push('/404') // console.log('✅ prerender', result) diff --git a/packages/scripts/src/conf/node-directory-tree.js b/packages/scripts/src/conf/node-directory-tree.js index 9ebd88b1..328269a3 100644 --- a/packages/scripts/src/conf/node-directory-tree.js +++ b/packages/scripts/src/conf/node-directory-tree.js @@ -76,6 +76,8 @@ function directoryTree({ item.type = constants.FILE const contentStr = fs.readFileSync(path).toString() if (contentStr && !options.prerender) { + // todo: when yarn build not run here. + item.test = 'test' const contentMatch = contentStr.match(/^/) item.relative = item.path.replace(process.cwd(), '') item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 273da66a..96fa9fc7 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -171,8 +171,8 @@ module.exports = function (cmd) { // routes, routes: [ '/README', '/快速上手', - '/hijkl', '/mnopq', - '/404' + '/290a4219', '/9f41fc98', + '/f55182c5' ], successCb: async () => { if (docsConfig.repo) { From 0abfe0dc043748001fc7453f31c6088e1e8c60b9 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 7 Oct 2021 19:16:32 +0800 Subject: [PATCH 256/352] feat: support frontmatter --- .../scripts/src/conf/getPrerenderRoutes.js | 8 +++++--- .../scripts/src/conf/node-directory-tree.js | 19 +++++++++---------- .../scripts/src/conf/webpack.config.prod.js | 14 +++++++------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index 7e652907..f8213262 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -14,10 +14,8 @@ const getPrerenderRoutes = (cmd) => { path, options: otherProps, })) - console.log('dirTree12345', dirTree) const result = getPrerenderRoute(dirTree) result.push('/404') - // console.log('✅ prerender', result) return result } @@ -28,7 +26,11 @@ function getPrerenderRoute(data) { function recursive(data, routePath, arr) { data.forEach((item) => { - const routePropsCurrent = `${routePath}/${item.name}`.replace(/.md$/, '') + const { mdconf } = item || {} + const { abbrlink } = mdconf || {} + const routePropsCurrent = abbrlink + ? `/${abbrlink}` + : `${routePath}/${item.name}`.replace(/.md$/, '') if (item.type === 'directory') { if (item.children && item.children.length > 0) { // eslint-disable-next-line no-unused-vars diff --git a/packages/scripts/src/conf/node-directory-tree.js b/packages/scripts/src/conf/node-directory-tree.js index 328269a3..55048be4 100644 --- a/packages/scripts/src/conf/node-directory-tree.js +++ b/packages/scripts/src/conf/node-directory-tree.js @@ -75,18 +75,9 @@ function directoryTree({ if (options && options.mdconf) { item.type = constants.FILE const contentStr = fs.readFileSync(path).toString() - if (contentStr && !options.prerender) { - // todo: when yarn build not run here. - item.test = 'test' + if (contentStr) { const contentMatch = contentStr.match(/^/) - item.relative = item.path.replace(process.cwd(), '') item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} - console.log('item.mdconf', item.mdconf) - item.isEmpty = contentMatch - ? !String.prototype.trim.call(contentStr.replace(contentMatch[0], '')) - : true - const uglifyContent = contentStr.replace(/\s/g, '') - item.content = uglifyContent try { // see https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository/2390382#2390382 const result = execSync(`git log --format=%aD ${path} | tail -1`) @@ -106,6 +97,14 @@ function directoryTree({ } item.size = stats.size // File size in bytes item.extension = ext + if (!options.prerender) { + item.relative = item.path.replace(process.cwd(), '') + item.isEmpty = contentMatch + ? !String.prototype.trim.call(contentStr.replace(contentMatch[0], '')) + : true + const uglifyContent = contentStr.replace(/\s/g, '') + item.content = uglifyContent + } } } } else if (stats.isDirectory()) { diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 96fa9fc7..45ac29e3 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -126,7 +126,7 @@ module.exports = function (cmd) { console.log('docsConfig.repo', docsConfig.repo,) console.log('outputDir', docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist,) console.log('indexPath', docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}/index.html` : `${docsBuildDist}/index.html`,) - console.log('routes', routes) + console.log('✅ routes', routes) config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ @@ -168,12 +168,12 @@ module.exports = function (cmd) { ? `${docsBuildDist}/${docsConfig.repo}/index.html` : `${docsBuildDist}/index.html`, // Required - Routes to render. - // routes, - routes: [ - '/README', '/快速上手', - '/290a4219', '/9f41fc98', - '/f55182c5' - ], + routes, + // routes: [ + // '/README', '/快速上手', + // '/290a4219', '/9f41fc98', + // '/f55182c5' + // ], successCb: async () => { if (docsConfig.repo) { // not use fs.move here or it'll throw error in github action From a1b81ce6e8445470eef2998afc2b0039e5e22913 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 8 Oct 2021 13:34:37 +0800 Subject: [PATCH 257/352] feat: support attrlink in Front-matter --- config.yml | 5 +++-- docs/Front-matter.md | 19 +++++++++++++++++++ ...30\350\256\244\344\270\273\351\242\230.md" | 6 ------ ...64\346\226\260\346\227\245\345\277\227.md" | 9 +++++++++ packages/crd-seed/layout/index.js | 2 -- .../scripts/src/conf/getPrerenderRoutes.js | 12 +++++++----- .../scripts/src/conf/webpack.config.prod.js | 10 ---------- 7 files changed, 38 insertions(+), 25 deletions(-) create mode 100644 docs/Front-matter.md diff --git a/config.yml b/config.yml index 263d32ee..c2a02e80 100644 --- a/config.yml +++ b/config.yml @@ -11,10 +11,11 @@ menu: [ docs/更新日志.md, docs/主题, docs/站点发布.md, - docs/其它工具.md, - docs/书写组件.md, + docs/Front-matter.md, docs/数学公式.md, + docs/书写组件.md, docs/高阶用法.md, + docs/其它工具.md, ] ## set init open menu keys # menuOpenKeys: diff --git a/docs/Front-matter.md b/docs/Front-matter.md new file mode 100644 index 00000000..72a4559c --- /dev/null +++ b/docs/Front-matter.md @@ -0,0 +1,19 @@ + + +## Front-matter + +Front-matter 是文件最上方包裹在 `` 之间的区域,用于指定个别文件的变量,举例来说: + +```md + +``` + +以下是预先定义的参数,您可在模板中使用这些参数值并加以利用。 + +| 参数 | 描述 | 默认值 | +| :------- | :-------------------------------------------------------------- | :----- | +| abbrlink | 短链。用于指定页面路由展示为指定短链,使用短链有助于 SEO 搜索。 | | diff --git "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" index d1a9fd7d..84394647 100644 --- "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -1,9 +1,3 @@ - - ## 默认主题 create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题有以下特性: diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 25221f43..2a54a254 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -2,6 +2,15 @@ `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.4.0 + +`2021-10-08` + +- **Feature** + + - 🚀 支持展示短链以让文章链接持久化。[issue](https://github.com/MuYunyun/create-react-doc/issues/87)、[mr](https://github.com/MuYunyun/create-react-doc/pull/193) + - 🚀 支持在 Front-matter 区域中书写个别文件的变量。 + ### 1.3.5 `2021-09-24` diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 350bc6c9..79d3df71 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -43,7 +43,6 @@ function BasicLayout({ useEffect(() => { const newPathName = location.pathname - // setSelectedKey(`${newPathName}.md`) setSelectedKey(newPathName) }, location) @@ -115,7 +114,6 @@ function BasicLayout({ }} selectedKey={selectedKey} onSelect={(keyValue) => { - console.log('keyValue', keyValue) setSelectedKey(keyValue) }} defaultOpenKeys={curOpenKeys} diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/scripts/src/conf/getPrerenderRoutes.js index f8213262..0170d55e 100644 --- a/packages/scripts/src/conf/getPrerenderRoutes.js +++ b/packages/scripts/src/conf/getPrerenderRoutes.js @@ -28,18 +28,20 @@ function recursive(data, routePath, arr) { data.forEach((item) => { const { mdconf } = item || {} const { abbrlink } = mdconf || {} - const routePropsCurrent = abbrlink - ? `/${abbrlink}` - : `${routePath}/${item.name}`.replace(/.md$/, '') + const composeRouteName = `${routePath}/${item.name}`.replace(/.md$/, '') + if (item.type === 'directory') { if (item.children && item.children.length > 0) { // eslint-disable-next-line no-unused-vars - item.children = recursive(item.children, routePropsCurrent, arr) + item.children = recursive(item.children, composeRouteName, arr) } else { item.children = [] } } else if (item.type === 'file') { - arr.push(routePropsCurrent) + const prerenderRouteName = abbrlink + ? `/${abbrlink}` + : composeRouteName + arr.push(prerenderRouteName) } }) return arr diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/scripts/src/conf/webpack.config.prod.js index 45ac29e3..d6a64489 100755 --- a/packages/scripts/src/conf/webpack.config.prod.js +++ b/packages/scripts/src/conf/webpack.config.prod.js @@ -123,11 +123,6 @@ module.exports = function (cmd) { const routes = getPrerenderRoutes(cmd) - console.log('docsConfig.repo', docsConfig.repo,) - console.log('outputDir', docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist,) - console.log('indexPath', docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}/index.html` : `${docsBuildDist}/index.html`,) - console.log('✅ routes', routes) - config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('prod'), @@ -169,11 +164,6 @@ module.exports = function (cmd) { : `${docsBuildDist}/index.html`, // Required - Routes to render. routes, - // routes: [ - // '/README', '/快速上手', - // '/290a4219', '/9f41fc98', - // '/f55182c5' - // ], successCb: async () => { if (docsConfig.repo) { // not use fs.move here or it'll throw error in github action From 7b366a64c05b5c171c6636de8cb1621f9835b1e8 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 9 Oct 2021 10:06:39 +0800 Subject: [PATCH 258/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- packages/create-react-doc/package.json | 4 ++-- packages/scripts/package.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lerna.json b/lerna.json index f149f5ba..90dd9511 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.5", + "version": "1.4.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 2f948b51..da5f5124 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.1.5", + "version": "1.4.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 58269946..dfbfadb1 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.3.5", + "version": "1.4.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.3.5", + "crd-scripts": "^1.4.0", "crd-templates": "^1.3.5", "crd-theme": "^1.3.2", "fs-extra": "^5.0.0" diff --git a/packages/scripts/package.json b/packages/scripts/package.json index a23d6ec9..860393f8 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.3.5", + "version": "1.4.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { From ea8842c542e541fe3d46ae984a4a14f5b321cf93 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 10 Oct 2021 18:11:49 +0800 Subject: [PATCH 259/352] feat: update dir --- config.yml | 8 +++++--- packages/{scripts => crd-scripts}/.babelrc.js | 0 packages/{scripts => crd-scripts}/.npmrc | 0 packages/{scripts => crd-scripts}/README.md | 0 packages/{scripts => crd-scripts}/index.js | 0 packages/{scripts => crd-scripts}/package.json | 0 packages/{scripts => crd-scripts}/src/build.js | 0 .../src/commands/initProject.js | 0 .../src/commands/initTheme.js | 0 .../src/conf/getPrerenderRoutes.js | 0 .../src/conf/node-directory-tree.js | 0 packages/{scripts => crd-scripts}/src/conf/path.js | 0 .../src/conf/rawTreeReplaceLoader.js | 0 .../src/conf/webpack.config.dev.js | 0 .../src/conf/webpack.config.js | 0 .../src/conf/webpack.config.prod.js | 0 .../src/conf/webpack.config.server.js | 0 packages/{scripts => crd-scripts}/src/deploy.js | 0 packages/{scripts => crd-scripts}/src/server.js | 0 .../{scripts => crd-scripts}/src/utils/index.js | 0 .../{scripts => crd-scripts}/src/utils/initCache.js | 0 packages/{scripts => crd-scripts}/src/web/Router.js | 0 packages/{scripts => crd-scripts}/src/web/crd.json | 0 packages/{scripts => crd-scripts}/src/web/index.js | 0 .../{scripts => crd-scripts}/src/web/lazyload.js | 0 packages/{templates => crd-templates}/.npmrc | 0 packages/{templates => crd-templates}/README.md | 0 .../default/.github/workflows/gh-pages.yml | 0 .../{templates => crd-templates}/default/.npmrc | 0 .../default/Introduction/hello_world.md | 0 .../{templates => crd-templates}/default/README.md | 0 .../default/_.gitignore | 0 .../default/_config.yml | 0 .../default/_package.json | 0 packages/{templates => crd-templates}/package.json | 0 .../theme/default/Introduction/hello_world.md | 0 .../theme/default/README.md | 0 .../theme/default/_.gitignore | 0 .../theme/default/_.npmrc | 0 .../theme/default/_config.yml | 0 .../theme/default/_index.js | 0 .../theme/default/_index.less | 0 .../theme/default/_package.json | 0 packages/{theme => crd-theme}/.npmrc | 0 packages/{theme => crd-theme}/README.md | 0 .../{theme => crd-theme}/component/Loading/index.js | 0 .../component/Loading/index.less | 0 packages/{theme => crd-theme}/crd.logo.svg | 0 packages/{theme => crd-theme}/favicon.ico | Bin packages/{theme => crd-theme}/index.html | 0 packages/{theme => crd-theme}/index.js | 0 packages/{theme => crd-theme}/index.less | 0 packages/{theme => crd-theme}/markdown/Link.js | 0 packages/{theme => crd-theme}/markdown/Link.less | 0 packages/{theme => crd-theme}/markdown/codeBlock.js | 0 packages/{theme => crd-theme}/markdown/index.js | 0 .../{theme => crd-theme}/markdown/style/css.less | 0 .../markdown/style/default.less | 0 .../{theme => crd-theme}/markdown/style/diff.less | 0 .../{theme => crd-theme}/markdown/style/index.less | 0 .../markdown/style/javascript.less | 0 .../{theme => crd-theme}/markdown/style/swift.less | 0 .../{theme => crd-theme}/markdown/style/xml.less | 0 packages/{theme => crd-theme}/package.json | 0 packages/{theme => crd-theme}/routes/Pages/index.js | 0 packages/{theme => crd-theme}/utils/index.js | 0 packages/{utils => crd-utils}/.npmrc | 0 packages/{utils => crd-utils}/README.md | 0 packages/{utils => crd-utils}/index.js | 0 packages/{utils => crd-utils}/package.json | 0 packages/{utils => crd-utils}/path.js | 0 71 files changed, 5 insertions(+), 3 deletions(-) rename packages/{scripts => crd-scripts}/.babelrc.js (100%) rename packages/{scripts => crd-scripts}/.npmrc (100%) rename packages/{scripts => crd-scripts}/README.md (100%) rename packages/{scripts => crd-scripts}/index.js (100%) rename packages/{scripts => crd-scripts}/package.json (100%) rename packages/{scripts => crd-scripts}/src/build.js (100%) rename packages/{scripts => crd-scripts}/src/commands/initProject.js (100%) rename packages/{scripts => crd-scripts}/src/commands/initTheme.js (100%) rename packages/{scripts => crd-scripts}/src/conf/getPrerenderRoutes.js (100%) rename packages/{scripts => crd-scripts}/src/conf/node-directory-tree.js (100%) rename packages/{scripts => crd-scripts}/src/conf/path.js (100%) rename packages/{scripts => crd-scripts}/src/conf/rawTreeReplaceLoader.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.dev.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.prod.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.server.js (100%) rename packages/{scripts => crd-scripts}/src/deploy.js (100%) rename packages/{scripts => crd-scripts}/src/server.js (100%) rename packages/{scripts => crd-scripts}/src/utils/index.js (100%) rename packages/{scripts => crd-scripts}/src/utils/initCache.js (100%) rename packages/{scripts => crd-scripts}/src/web/Router.js (100%) rename packages/{scripts => crd-scripts}/src/web/crd.json (100%) rename packages/{scripts => crd-scripts}/src/web/index.js (100%) rename packages/{scripts => crd-scripts}/src/web/lazyload.js (100%) rename packages/{templates => crd-templates}/.npmrc (100%) rename packages/{templates => crd-templates}/README.md (100%) rename packages/{templates => crd-templates}/default/.github/workflows/gh-pages.yml (100%) rename packages/{templates => crd-templates}/default/.npmrc (100%) rename packages/{templates => crd-templates}/default/Introduction/hello_world.md (100%) rename packages/{templates => crd-templates}/default/README.md (100%) rename packages/{templates => crd-templates}/default/_.gitignore (100%) rename packages/{templates => crd-templates}/default/_config.yml (100%) rename packages/{templates => crd-templates}/default/_package.json (100%) rename packages/{templates => crd-templates}/package.json (100%) rename packages/{templates => crd-templates}/theme/default/Introduction/hello_world.md (100%) rename packages/{templates => crd-templates}/theme/default/README.md (100%) rename packages/{templates => crd-templates}/theme/default/_.gitignore (100%) rename packages/{templates => crd-templates}/theme/default/_.npmrc (100%) rename packages/{templates => crd-templates}/theme/default/_config.yml (100%) rename packages/{templates => crd-templates}/theme/default/_index.js (100%) rename packages/{templates => crd-templates}/theme/default/_index.less (100%) rename packages/{templates => crd-templates}/theme/default/_package.json (100%) rename packages/{theme => crd-theme}/.npmrc (100%) rename packages/{theme => crd-theme}/README.md (100%) rename packages/{theme => crd-theme}/component/Loading/index.js (100%) rename packages/{theme => crd-theme}/component/Loading/index.less (100%) rename packages/{theme => crd-theme}/crd.logo.svg (100%) rename packages/{theme => crd-theme}/favicon.ico (100%) rename packages/{theme => crd-theme}/index.html (100%) rename packages/{theme => crd-theme}/index.js (100%) rename packages/{theme => crd-theme}/index.less (100%) rename packages/{theme => crd-theme}/markdown/Link.js (100%) rename packages/{theme => crd-theme}/markdown/Link.less (100%) rename packages/{theme => crd-theme}/markdown/codeBlock.js (100%) rename packages/{theme => crd-theme}/markdown/index.js (100%) rename packages/{theme => crd-theme}/markdown/style/css.less (100%) rename packages/{theme => crd-theme}/markdown/style/default.less (100%) rename packages/{theme => crd-theme}/markdown/style/diff.less (100%) rename packages/{theme => crd-theme}/markdown/style/index.less (100%) rename packages/{theme => crd-theme}/markdown/style/javascript.less (100%) rename packages/{theme => crd-theme}/markdown/style/swift.less (100%) rename packages/{theme => crd-theme}/markdown/style/xml.less (100%) rename packages/{theme => crd-theme}/package.json (100%) rename packages/{theme => crd-theme}/routes/Pages/index.js (100%) rename packages/{theme => crd-theme}/utils/index.js (100%) rename packages/{utils => crd-utils}/.npmrc (100%) rename packages/{utils => crd-utils}/README.md (100%) rename packages/{utils => crd-utils}/index.js (100%) rename packages/{utils => crd-utils}/package.json (100%) rename packages/{utils => crd-utils}/path.js (100%) diff --git a/config.yml b/config.yml index c2a02e80..33153c05 100644 --- a/config.yml +++ b/config.yml @@ -1,4 +1,4 @@ -# create-react-doc configuration, see https://github.com/MuYunyun/create-react-doc##config.yml +# create-react-doc configuration. # Site title: Create React Doc @@ -33,9 +33,11 @@ domain: https://muyunyun.cn seo: google: true - # Available values: en | zh-cn language: en # Inject Custom Logic -inject: injectLogic/index.js \ No newline at end of file +inject: injectLogic/index.js + +# Use abbrlink +abbrlink: true diff --git a/packages/scripts/.babelrc.js b/packages/crd-scripts/.babelrc.js similarity index 100% rename from packages/scripts/.babelrc.js rename to packages/crd-scripts/.babelrc.js diff --git a/packages/scripts/.npmrc b/packages/crd-scripts/.npmrc similarity index 100% rename from packages/scripts/.npmrc rename to packages/crd-scripts/.npmrc diff --git a/packages/scripts/README.md b/packages/crd-scripts/README.md similarity index 100% rename from packages/scripts/README.md rename to packages/crd-scripts/README.md diff --git a/packages/scripts/index.js b/packages/crd-scripts/index.js similarity index 100% rename from packages/scripts/index.js rename to packages/crd-scripts/index.js diff --git a/packages/scripts/package.json b/packages/crd-scripts/package.json similarity index 100% rename from packages/scripts/package.json rename to packages/crd-scripts/package.json diff --git a/packages/scripts/src/build.js b/packages/crd-scripts/src/build.js similarity index 100% rename from packages/scripts/src/build.js rename to packages/crd-scripts/src/build.js diff --git a/packages/scripts/src/commands/initProject.js b/packages/crd-scripts/src/commands/initProject.js similarity index 100% rename from packages/scripts/src/commands/initProject.js rename to packages/crd-scripts/src/commands/initProject.js diff --git a/packages/scripts/src/commands/initTheme.js b/packages/crd-scripts/src/commands/initTheme.js similarity index 100% rename from packages/scripts/src/commands/initTheme.js rename to packages/crd-scripts/src/commands/initTheme.js diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js similarity index 100% rename from packages/scripts/src/conf/getPrerenderRoutes.js rename to packages/crd-scripts/src/conf/getPrerenderRoutes.js diff --git a/packages/scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js similarity index 100% rename from packages/scripts/src/conf/node-directory-tree.js rename to packages/crd-scripts/src/conf/node-directory-tree.js diff --git a/packages/scripts/src/conf/path.js b/packages/crd-scripts/src/conf/path.js similarity index 100% rename from packages/scripts/src/conf/path.js rename to packages/crd-scripts/src/conf/path.js diff --git a/packages/scripts/src/conf/rawTreeReplaceLoader.js b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js similarity index 100% rename from packages/scripts/src/conf/rawTreeReplaceLoader.js rename to packages/crd-scripts/src/conf/rawTreeReplaceLoader.js diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.dev.js rename to packages/crd-scripts/src/conf/webpack.config.dev.js diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/crd-scripts/src/conf/webpack.config.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.js rename to packages/crd-scripts/src/conf/webpack.config.js diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.prod.js rename to packages/crd-scripts/src/conf/webpack.config.prod.js diff --git a/packages/scripts/src/conf/webpack.config.server.js b/packages/crd-scripts/src/conf/webpack.config.server.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.server.js rename to packages/crd-scripts/src/conf/webpack.config.server.js diff --git a/packages/scripts/src/deploy.js b/packages/crd-scripts/src/deploy.js similarity index 100% rename from packages/scripts/src/deploy.js rename to packages/crd-scripts/src/deploy.js diff --git a/packages/scripts/src/server.js b/packages/crd-scripts/src/server.js similarity index 100% rename from packages/scripts/src/server.js rename to packages/crd-scripts/src/server.js diff --git a/packages/scripts/src/utils/index.js b/packages/crd-scripts/src/utils/index.js similarity index 100% rename from packages/scripts/src/utils/index.js rename to packages/crd-scripts/src/utils/index.js diff --git a/packages/scripts/src/utils/initCache.js b/packages/crd-scripts/src/utils/initCache.js similarity index 100% rename from packages/scripts/src/utils/initCache.js rename to packages/crd-scripts/src/utils/initCache.js diff --git a/packages/scripts/src/web/Router.js b/packages/crd-scripts/src/web/Router.js similarity index 100% rename from packages/scripts/src/web/Router.js rename to packages/crd-scripts/src/web/Router.js diff --git a/packages/scripts/src/web/crd.json b/packages/crd-scripts/src/web/crd.json similarity index 100% rename from packages/scripts/src/web/crd.json rename to packages/crd-scripts/src/web/crd.json diff --git a/packages/scripts/src/web/index.js b/packages/crd-scripts/src/web/index.js similarity index 100% rename from packages/scripts/src/web/index.js rename to packages/crd-scripts/src/web/index.js diff --git a/packages/scripts/src/web/lazyload.js b/packages/crd-scripts/src/web/lazyload.js similarity index 100% rename from packages/scripts/src/web/lazyload.js rename to packages/crd-scripts/src/web/lazyload.js diff --git a/packages/templates/.npmrc b/packages/crd-templates/.npmrc similarity index 100% rename from packages/templates/.npmrc rename to packages/crd-templates/.npmrc diff --git a/packages/templates/README.md b/packages/crd-templates/README.md similarity index 100% rename from packages/templates/README.md rename to packages/crd-templates/README.md diff --git a/packages/templates/default/.github/workflows/gh-pages.yml b/packages/crd-templates/default/.github/workflows/gh-pages.yml similarity index 100% rename from packages/templates/default/.github/workflows/gh-pages.yml rename to packages/crd-templates/default/.github/workflows/gh-pages.yml diff --git a/packages/templates/default/.npmrc b/packages/crd-templates/default/.npmrc similarity index 100% rename from packages/templates/default/.npmrc rename to packages/crd-templates/default/.npmrc diff --git a/packages/templates/default/Introduction/hello_world.md b/packages/crd-templates/default/Introduction/hello_world.md similarity index 100% rename from packages/templates/default/Introduction/hello_world.md rename to packages/crd-templates/default/Introduction/hello_world.md diff --git a/packages/templates/default/README.md b/packages/crd-templates/default/README.md similarity index 100% rename from packages/templates/default/README.md rename to packages/crd-templates/default/README.md diff --git a/packages/templates/default/_.gitignore b/packages/crd-templates/default/_.gitignore similarity index 100% rename from packages/templates/default/_.gitignore rename to packages/crd-templates/default/_.gitignore diff --git a/packages/templates/default/_config.yml b/packages/crd-templates/default/_config.yml similarity index 100% rename from packages/templates/default/_config.yml rename to packages/crd-templates/default/_config.yml diff --git a/packages/templates/default/_package.json b/packages/crd-templates/default/_package.json similarity index 100% rename from packages/templates/default/_package.json rename to packages/crd-templates/default/_package.json diff --git a/packages/templates/package.json b/packages/crd-templates/package.json similarity index 100% rename from packages/templates/package.json rename to packages/crd-templates/package.json diff --git a/packages/templates/theme/default/Introduction/hello_world.md b/packages/crd-templates/theme/default/Introduction/hello_world.md similarity index 100% rename from packages/templates/theme/default/Introduction/hello_world.md rename to packages/crd-templates/theme/default/Introduction/hello_world.md diff --git a/packages/templates/theme/default/README.md b/packages/crd-templates/theme/default/README.md similarity index 100% rename from packages/templates/theme/default/README.md rename to packages/crd-templates/theme/default/README.md diff --git a/packages/templates/theme/default/_.gitignore b/packages/crd-templates/theme/default/_.gitignore similarity index 100% rename from packages/templates/theme/default/_.gitignore rename to packages/crd-templates/theme/default/_.gitignore diff --git a/packages/templates/theme/default/_.npmrc b/packages/crd-templates/theme/default/_.npmrc similarity index 100% rename from packages/templates/theme/default/_.npmrc rename to packages/crd-templates/theme/default/_.npmrc diff --git a/packages/templates/theme/default/_config.yml b/packages/crd-templates/theme/default/_config.yml similarity index 100% rename from packages/templates/theme/default/_config.yml rename to packages/crd-templates/theme/default/_config.yml diff --git a/packages/templates/theme/default/_index.js b/packages/crd-templates/theme/default/_index.js similarity index 100% rename from packages/templates/theme/default/_index.js rename to packages/crd-templates/theme/default/_index.js diff --git a/packages/templates/theme/default/_index.less b/packages/crd-templates/theme/default/_index.less similarity index 100% rename from packages/templates/theme/default/_index.less rename to packages/crd-templates/theme/default/_index.less diff --git a/packages/templates/theme/default/_package.json b/packages/crd-templates/theme/default/_package.json similarity index 100% rename from packages/templates/theme/default/_package.json rename to packages/crd-templates/theme/default/_package.json diff --git a/packages/theme/.npmrc b/packages/crd-theme/.npmrc similarity index 100% rename from packages/theme/.npmrc rename to packages/crd-theme/.npmrc diff --git a/packages/theme/README.md b/packages/crd-theme/README.md similarity index 100% rename from packages/theme/README.md rename to packages/crd-theme/README.md diff --git a/packages/theme/component/Loading/index.js b/packages/crd-theme/component/Loading/index.js similarity index 100% rename from packages/theme/component/Loading/index.js rename to packages/crd-theme/component/Loading/index.js diff --git a/packages/theme/component/Loading/index.less b/packages/crd-theme/component/Loading/index.less similarity index 100% rename from packages/theme/component/Loading/index.less rename to packages/crd-theme/component/Loading/index.less diff --git a/packages/theme/crd.logo.svg b/packages/crd-theme/crd.logo.svg similarity index 100% rename from packages/theme/crd.logo.svg rename to packages/crd-theme/crd.logo.svg diff --git a/packages/theme/favicon.ico b/packages/crd-theme/favicon.ico similarity index 100% rename from packages/theme/favicon.ico rename to packages/crd-theme/favicon.ico diff --git a/packages/theme/index.html b/packages/crd-theme/index.html similarity index 100% rename from packages/theme/index.html rename to packages/crd-theme/index.html diff --git a/packages/theme/index.js b/packages/crd-theme/index.js similarity index 100% rename from packages/theme/index.js rename to packages/crd-theme/index.js diff --git a/packages/theme/index.less b/packages/crd-theme/index.less similarity index 100% rename from packages/theme/index.less rename to packages/crd-theme/index.less diff --git a/packages/theme/markdown/Link.js b/packages/crd-theme/markdown/Link.js similarity index 100% rename from packages/theme/markdown/Link.js rename to packages/crd-theme/markdown/Link.js diff --git a/packages/theme/markdown/Link.less b/packages/crd-theme/markdown/Link.less similarity index 100% rename from packages/theme/markdown/Link.less rename to packages/crd-theme/markdown/Link.less diff --git a/packages/theme/markdown/codeBlock.js b/packages/crd-theme/markdown/codeBlock.js similarity index 100% rename from packages/theme/markdown/codeBlock.js rename to packages/crd-theme/markdown/codeBlock.js diff --git a/packages/theme/markdown/index.js b/packages/crd-theme/markdown/index.js similarity index 100% rename from packages/theme/markdown/index.js rename to packages/crd-theme/markdown/index.js diff --git a/packages/theme/markdown/style/css.less b/packages/crd-theme/markdown/style/css.less similarity index 100% rename from packages/theme/markdown/style/css.less rename to packages/crd-theme/markdown/style/css.less diff --git a/packages/theme/markdown/style/default.less b/packages/crd-theme/markdown/style/default.less similarity index 100% rename from packages/theme/markdown/style/default.less rename to packages/crd-theme/markdown/style/default.less diff --git a/packages/theme/markdown/style/diff.less b/packages/crd-theme/markdown/style/diff.less similarity index 100% rename from packages/theme/markdown/style/diff.less rename to packages/crd-theme/markdown/style/diff.less diff --git a/packages/theme/markdown/style/index.less b/packages/crd-theme/markdown/style/index.less similarity index 100% rename from packages/theme/markdown/style/index.less rename to packages/crd-theme/markdown/style/index.less diff --git a/packages/theme/markdown/style/javascript.less b/packages/crd-theme/markdown/style/javascript.less similarity index 100% rename from packages/theme/markdown/style/javascript.less rename to packages/crd-theme/markdown/style/javascript.less diff --git a/packages/theme/markdown/style/swift.less b/packages/crd-theme/markdown/style/swift.less similarity index 100% rename from packages/theme/markdown/style/swift.less rename to packages/crd-theme/markdown/style/swift.less diff --git a/packages/theme/markdown/style/xml.less b/packages/crd-theme/markdown/style/xml.less similarity index 100% rename from packages/theme/markdown/style/xml.less rename to packages/crd-theme/markdown/style/xml.less diff --git a/packages/theme/package.json b/packages/crd-theme/package.json similarity index 100% rename from packages/theme/package.json rename to packages/crd-theme/package.json diff --git a/packages/theme/routes/Pages/index.js b/packages/crd-theme/routes/Pages/index.js similarity index 100% rename from packages/theme/routes/Pages/index.js rename to packages/crd-theme/routes/Pages/index.js diff --git a/packages/theme/utils/index.js b/packages/crd-theme/utils/index.js similarity index 100% rename from packages/theme/utils/index.js rename to packages/crd-theme/utils/index.js diff --git a/packages/utils/.npmrc b/packages/crd-utils/.npmrc similarity index 100% rename from packages/utils/.npmrc rename to packages/crd-utils/.npmrc diff --git a/packages/utils/README.md b/packages/crd-utils/README.md similarity index 100% rename from packages/utils/README.md rename to packages/crd-utils/README.md diff --git a/packages/utils/index.js b/packages/crd-utils/index.js similarity index 100% rename from packages/utils/index.js rename to packages/crd-utils/index.js diff --git a/packages/utils/package.json b/packages/crd-utils/package.json similarity index 100% rename from packages/utils/package.json rename to packages/crd-utils/package.json diff --git a/packages/utils/path.js b/packages/crd-utils/path.js similarity index 100% rename from packages/utils/path.js rename to packages/crd-utils/path.js From f1464e3b277af02165367f3bb391013fc51f3efd Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 10 Oct 2021 21:45:06 +0800 Subject: [PATCH 260/352] feat: support generate uuid --- ...60\345\255\246\345\205\254\345\274\217.md" | 5 ++ packages/crd-scripts/index.js | 2 + .../src/conf/node-directory-tree.js | 71 ++++++++++--------- .../src/conf/webpack.config.prod.js | 8 +-- packages/crd-scripts/src/generate.js | 23 ++++++ packages/crd-utils/index.js | 19 +++++ packages/create-react-doc/README.md | 14 ++-- packages/create-react-doc/index.js | 41 +++++++---- 8 files changed, 125 insertions(+), 58 deletions(-) create mode 100644 packages/crd-scripts/src/generate.js diff --git "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" index 5cebe3e2..471cd552 100644 --- "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" +++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" @@ -1,3 +1,8 @@ + + ## 数学公式 支持在 `$$` 与 `$$` 之间书写 latex 数学公式即能显示在网页上。 diff --git a/packages/crd-scripts/index.js b/packages/crd-scripts/index.js index c819cc57..8a84dd85 100644 --- a/packages/crd-scripts/index.js +++ b/packages/crd-scripts/index.js @@ -4,6 +4,7 @@ const initCache = require('./src/utils/initCache') const Servers = require('./src/server') const Build = require('./src/build') const Deploy = require('./src/deploy') +const Generate = require('./src/generate') const paths = require('./src/conf/path') module.exports = { @@ -13,5 +14,6 @@ module.exports = { Servers, Build, Deploy, + Generate, paths, } diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 55048be4..573a23c4 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -3,6 +3,7 @@ const fs = require('fs') const PATH = require('path') const YAML = require('yamljs') const { execSync } = require('child_process') +const { replaceFileContent } = require('crd-utils') const { getDigitFromDir, timeFormat } = require('../utils') const constants = { @@ -37,14 +38,14 @@ function safeReadDirSync(path) { return dirData } -/** - * build directory Tree, fork from https://github.com/mihneadb/node-directory-tree +/** build directory Tree, fork from https://github.com/mihneadb/node-directory-tree * path: path for file * options: { * exclude: RegExp|RegExp[] - A RegExp or an array of RegExp to test for exclusion of directories. * extensions : RegExp - A RegExp to test for exclusion of files with the matching extension. - * mdconf: boolean - * prerender: boolean use for prerender + * mdconf: Boolean. + * prerender: Boolean. Used for prerender. + * generate: Boolean. Used for generating info in front-matter. * } */ function directoryTree({ @@ -75,37 +76,41 @@ function directoryTree({ if (options && options.mdconf) { item.type = constants.FILE const contentStr = fs.readFileSync(path).toString() - if (contentStr) { - const contentMatch = contentStr.match(/^/) - item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} - try { - // see https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository/2390382#2390382 - const result = execSync(`git log --format=%aD ${path} | tail -1`) - item.birthtime = - Buffer.isBuffer(result) && timeFormat(new Date(result)) - } catch (error) { - // eslint-disable-next-line no-console - console.log(`error: ${error.message}`) - } - try { - // see https://stackoverflow.com/questions/22497597/get-the-last-modification-data-of-a-file-in-git-repo - const result = execSync(`git log -1 --pretty="format:%ci" ${path}`) - item.mtime = Buffer.isBuffer(result) && timeFormat(new Date(result)) - } catch (error) { - // eslint-disable-next-line no-console - console.log(`error: ${error.message}`) - } - item.size = stats.size // File size in bytes - item.extension = ext - if (!options.prerender) { - item.relative = item.path.replace(process.cwd(), '') - item.isEmpty = contentMatch - ? !String.prototype.trim.call(contentStr.replace(contentMatch[0], '')) - : true - const uglifyContent = contentStr.replace(/\s/g, '') - item.content = uglifyContent + if (!contentStr) return + const contentMatch = contentStr.match(/^/) + if (options.generate) { + if (contentMatch && contentMatch[1].indexOf('abbrlink') === -1) { + replaceFileContent(path, contentMatch[1], `\nabbrlink: 290a4219${contentMatch[1]}`) + console.log('✅ replaceFileContent success') } } + + item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} + try { + // see https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository/2390382#2390382 + const result = execSync(`git log --format=%aD ${path} | tail -1`) + item.birthtime = + Buffer.isBuffer(result) && timeFormat(new Date(result)) + } catch (error) { + console.log(`❎ error: ${error.message}`) + } + try { + // see https://stackoverflow.com/questions/22497597/get-the-last-modification-data-of-a-file-in-git-repo + const result = execSync(`git log -1 --pretty="format:%ci" ${path}`) + item.mtime = Buffer.isBuffer(result) && timeFormat(new Date(result)) + } catch (error) { + console.log(`❎ error: ${error.message}`) + } + item.size = stats.size // File size in bytes + item.extension = ext + if (!options.prerender) { + item.relative = item.path.replace(process.cwd(), '') + item.isEmpty = contentMatch + ? !String.prototype.trim.call(contentStr.replace(contentMatch[0], '')) + : true + const uglifyContent = contentStr.replace(/\s/g, '') + item.content = uglifyContent + } } } else if (stats.isDirectory()) { const dirData = safeReadDirSync(path) diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index d6a64489..d6449361 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -7,8 +7,8 @@ const CopyMarkdownImageWebpackPlugin = require('copy-markdown-image-webpack-plug const MiniCssExtractPlugin = require('mini-css-extract-plugin') const PrerenderSPAPlugin = require('crd-prerender-spa-plugin') const { generateSiteMap } = require('crd-generator-sitemap') -// const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); -// const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +// const CssMinimizerPlugin = require('css-minimizer-webpack-plugin') +// const UglifyJsPlugin = require('uglifyjs-webpack-plugin') const fs = require('fs-extra') const { defaultHTMLPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('crd-utils') @@ -171,13 +171,13 @@ module.exports = function (cmd) { await fs.remove(`${docsBuildDist}/${docsConfig.repo}`) // move README as root index.html await fs.copy(`${docsBuildDist}/README/index.html`, `${docsBuildDist}/index.html`) - console.log('generate prerender file success!') + console.log('✅ generate prerender file success!') if (docsConfig.seo) { if (docsConfig.seo.google) { fs.writeFileSync(`${docsBuildDist}/sitemap.xml`, generateSiteMap(routes)) } } - console.log('generate sitemap file success!') + console.log('✅ generate sitemap file success!') } }, // The actual renderer to use. (Feel free to write your own) diff --git a/packages/crd-scripts/src/generate.js b/packages/crd-scripts/src/generate.js new file mode 100644 index 00000000..70fe2c0a --- /dev/null +++ b/packages/crd-scripts/src/generate.js @@ -0,0 +1,23 @@ +const fs = require('fs') +const { docsConfig } = require('crd-utils') +const DirectoryTree = require('./conf/node-directory-tree') + +module.exports = function generate(program) { + if (!fs.existsSync(docsConfig)) { + console.log('❎ please check config.yml in root dir!\n') + return + } + + const dir = program.markdownPaths + const dirs = Array.isArray(dir) ? dir : [dir] + const otherProps = { + mdconf: true, + extensions: /\.md/, + generate: true + } + dirs.map(path => DirectoryTree({ + path, + options: otherProps, + })) + console.log('✅ generate success!') +} diff --git a/packages/crd-utils/index.js b/packages/crd-utils/index.js index dca8d475..0665e4f9 100644 --- a/packages/crd-utils/index.js +++ b/packages/crd-utils/index.js @@ -16,10 +16,29 @@ const getDocsConfig = () => { return yaml.safeLoad(fs.readFileSync(docsConfig)) } +const replaceFileContent = (path, source, target) => { + fs.readFile(path, (err, data) => { + if (err) { + console.log(`❎ readFileContent error in ${path}`) + return + } + console.log(`✅ readFileContent success in ${path}`) + const replaceResult = data.toString().replace(source, target) + fs.writeFile(path, replaceResult, (err) => { + if (err) { + console.log(`❎ writeFileContent error in ${path}`) + return + } + }) + console.log(`✅ writeFileContent success in ${path}`) + }) +} + module.exports = { resolveApp, resolveTool, getDocsConfig, + replaceFileContent, // common paths docsGitIgnore: resolveApp('.gitignore'), docsBase: resolveApp(''), diff --git a/packages/create-react-doc/README.md b/packages/create-react-doc/README.md index 3ab9406f..b04c5f74 100644 --- a/packages/create-react-doc/README.md +++ b/packages/create-react-doc/README.md @@ -12,15 +12,17 @@ # react-doc -react-doc 是配合 [Create React Doc](https://github.com/MuYunyun/create-react-doc) 使用的脚手架。 +react-doc 是配合 [Create React Doc](https://github.com/MuYunyun/create-react-doc) 使用的脚手架,其内置如下命令。 ```bash -$ react-doc doc // 在当前文件夹下创建名为 doc 的文档站点 -$ react-doc start // 启动项目 -$ react-doc build // 项目打包 -$ react-doc deploy // 手动发布项目 +$ react-doc doc // 在当前文件夹下创建名为 doc 的文档站点 +$ react-doc start // 启动项目 +$ react-doc build // 项目打包 +$ react-doc deploy // 手动发布项目 +$ react-doc theme // 创建新主题包 +$ react-doc generate // 用于自动生成 Front-matter 中相关字段信息 ``` # 调试 -进入该目录, 执行 yarn link, 即可在全局使用 react-doc xxx 命令。 \ No newline at end of file +进入此包目录, 执行 yarn link, 即可在全局使用 react-doc xxx 命令。 diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index fff787d4..4df3c505 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -7,6 +7,7 @@ const { initTheme, initCache, Deploy, + Generate, Servers, Build, } = require('crd-scripts') @@ -17,10 +18,11 @@ const pkg = require('./package.json') program .version(pkg.version, '-v, --version') .description('Markdown doc site generator for React.') - .option('start', 'Documents generated.') + .option('start', 'Start the documents site in local env.') .option('build', 'Build the documents generated.') .option('deploy', 'Deploy site to gh-pages.') .option('theme', 'Create a new theme') + .option('generate', 'Generate info in front-matter') .option('-o, --output ', 'Writes the compiled file to the disk directory.', '.crd-dist') .option('-p, --port [number]', 'The port.', 3000) .option('--host [host]', 'The host.', '0.0.0.0') @@ -32,14 +34,15 @@ program console.log(' $ react-doc start') console.log(' $ react-doc build') console.log(' $ react-doc deploy') + console.log(' $ react-doc theme') + console.log(' $ react-doc generate') console.log() }) // the third value in process.argv is the value we want. .parse(process.argv) -const { start, build, deploy, theme } = program - -if (!start && !build && !deploy && !theme) return initProject(program) +const { start, build, deploy, theme, generate } = program +if (!start && !build && !deploy && !theme && !generate) return initProject(program) if (theme) { return input({ @@ -62,7 +65,7 @@ program.output = path.join(process.cwd(), program.output) const docsConfig = getDocsConfig() // assign all the markdown dir -if (start || build) { +if (start || build || generate) { fs.existsSync(docsReadme) && program.markdownPaths.push(docsReadme) @@ -84,23 +87,31 @@ if (deploy) { } // no point markdown paths -if (program.markdownPaths.length === 0) return console.log('Please specify the directory in config.yml.'.red) +if (program.markdownPaths.length === 0) { + return console.log('❎ Please specify the markdownPaths props in config.yml.'.red) +} let isExists = true // judge if files exist. program.markdownPaths.forEach((item) => { if (!fs.existsSync(item)) { - console.log(`Error: Directory ${item.yellow} does not exist`.red) isExists = false } }) -if (isExists) { - initCache(program, () => { - if (build) { - Build(program) - } else { - Servers(program) - } - }) +if (!isExists) { + console.log(`❎ Error: Directory ${item.yellow} does not exist`.red) + return +} + +if (generate) { + return Generate(program) } + +initCache(program, () => { + if (build) { + Build(program) + } else { + Servers(program) + } +}) From 66e1b2bca11a9e8e9b0d18ed827eec89d65ed214 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 11 Oct 2021 13:43:14 +0800 Subject: [PATCH 261/352] feat: support generate uuid --- ...5\260\345\255\246\345\205\254\345\274\217.md" | 1 + .../crd-scripts/src/conf/node-directory-tree.js | 8 ++++++-- packages/crd-utils/index.js | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" index 471cd552..ce37e75f 100644 --- "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" +++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" @@ -1,4 +1,5 @@ diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 573a23c4..a26caee3 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -3,7 +3,7 @@ const fs = require('fs') const PATH = require('path') const YAML = require('yamljs') const { execSync } = require('child_process') -const { replaceFileContent } = require('crd-utils') +const { replaceFileContent, generateRandomId } = require('crd-utils') const { getDigitFromDir, timeFormat } = require('../utils') const constants = { @@ -79,8 +79,12 @@ function directoryTree({ if (!contentStr) return const contentMatch = contentStr.match(/^/) if (options.generate) { + if (!contentMatch) { + + } if (contentMatch && contentMatch[1].indexOf('abbrlink') === -1) { - replaceFileContent(path, contentMatch[1], `\nabbrlink: 290a4219${contentMatch[1]}`) + const randomId = generateRandomId(8) + replaceFileContent(path, contentMatch[1], `\nabbrlink: ${randomId}${contentMatch[1]}`) console.log('✅ replaceFileContent success') } } diff --git a/packages/crd-utils/index.js b/packages/crd-utils/index.js index 0665e4f9..24bf7a37 100644 --- a/packages/crd-utils/index.js +++ b/packages/crd-utils/index.js @@ -34,11 +34,27 @@ const replaceFileContent = (path, source, target) => { }) } +const insertFrontMatter = () => { + // todo... +} + +// generate a random string, length of it is n. +const generateRandomId = (n) => { + const str = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] + let res = "" + for (let i = 0; i < n; i++) { + const id = Math.ceil(Math.random() * 35) + res += str[id] + } + return res +} + module.exports = { resolveApp, resolveTool, getDocsConfig, replaceFileContent, + generateRandomId, // common paths docsGitIgnore: resolveApp('.gitignore'), docsBase: resolveApp(''), From a2d4f75ddec530304d98f3f8d1984a69e4022cac Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 11 Oct 2021 19:04:53 +0800 Subject: [PATCH 262/352] feat: support generate uuid --- README.md | 3 +++ ...30\350\256\244\344\270\273\351\242\230.md" | 4 ++++ ...46\345\206\231\347\273\204\344\273\266.md" | 4 ++++ ...66\345\256\203\345\267\245\345\205\267.md" | 4 ++++ ...64\346\226\260\346\227\245\345\277\227.md" | 4 ++++ ...31\347\202\271\345\217\221\345\270\203.md" | 4 ++++ ...30\351\230\266\347\224\250\346\263\225.md" | 4 ++++ .../src/conf/node-directory-tree.js | 17 +++++++++----- packages/crd-utils/index.js | 22 +++++++++++++------ 9 files changed, 54 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ca1898f9..f5dd7d98 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ + _.-"\ _.-" \ ,-" \ diff --git "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 84394647..3dab66b6 100644 --- "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -1,3 +1,7 @@ + + ## 默认主题 create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题有以下特性: diff --git "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" index 0e82c45a..cfa6c6ff 100644 --- "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" +++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" @@ -1,3 +1,7 @@ + + import { Button } from '../components/index.jsx' ## 书写组件 diff --git "a/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" "b/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" index a41091b1..4ffac938 100644 --- "a/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" +++ "b/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" @@ -1,3 +1,7 @@ + + ## 其它工具 ### crd-leetcode-cli diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 2a54a254..2f341a6e 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -1,3 +1,7 @@ + + # CHANGELOG `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 diff --git "a/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" "b/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" index bcdbe918..c841e5b6 100644 --- "a/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" +++ "b/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" @@ -1,3 +1,7 @@ + + ## 站点发布 在 [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 diff --git "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" index 975f0325..e8e390c7 100644 --- "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" +++ "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" @@ -1,3 +1,7 @@ + + ## 高阶用法 与 git 文件结构类似, 如果在展示的文件夹中有私有文件不方便展示在文档站点, 可以在 `.gitignore` 文件中设置过滤文件, 这样它们就不会展示在文档站点中了。eg: [.gitignore](https://github.com/MuYunyun/blog/blob/main/.gitignore) diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index a26caee3..cf2ea2a6 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -3,7 +3,7 @@ const fs = require('fs') const PATH = require('path') const YAML = require('yamljs') const { execSync } = require('child_process') -const { replaceFileContent, generateRandomId } = require('crd-utils') +const { replaceForFrontMatter, generateRandomId } = require('crd-utils') const { getDigitFromDir, timeFormat } = require('../utils') const constants = { @@ -79,13 +79,20 @@ function directoryTree({ if (!contentStr) return const contentMatch = contentStr.match(/^/) if (options.generate) { + const randomId = generateRandomId(8) if (!contentMatch) { - + replaceForFrontMatter({ + path, + target: `\n` + }) } if (contentMatch && contentMatch[1].indexOf('abbrlink') === -1) { - const randomId = generateRandomId(8) - replaceFileContent(path, contentMatch[1], `\nabbrlink: ${randomId}${contentMatch[1]}`) - console.log('✅ replaceFileContent success') + replaceForFrontMatter({ + path, + source: contentMatch[1], + target: `\nabbrlink: ${randomId}${contentMatch[1]}` + }) + console.log('✅ replaceForFrontMatter success') } } diff --git a/packages/crd-utils/index.js b/packages/crd-utils/index.js index 24bf7a37..6b12c186 100644 --- a/packages/crd-utils/index.js +++ b/packages/crd-utils/index.js @@ -16,14 +16,26 @@ const getDocsConfig = () => { return yaml.safeLoad(fs.readFileSync(docsConfig)) } -const replaceFileContent = (path, source, target) => { +/** + * replace file content for Front-matter + * path: file path + * source?: source content + * target: target content + */ +const replaceForFrontMatter = ({ + path, + source, + target +}) => { fs.readFile(path, (err, data) => { if (err) { console.log(`❎ readFileContent error in ${path}`) return } console.log(`✅ readFileContent success in ${path}`) - const replaceResult = data.toString().replace(source, target) + const replaceResult = source + ? data.toString().replace(source, target) + : `${target}\n${data.toString()}` fs.writeFile(path, replaceResult, (err) => { if (err) { console.log(`❎ writeFileContent error in ${path}`) @@ -34,10 +46,6 @@ const replaceFileContent = (path, source, target) => { }) } -const insertFrontMatter = () => { - // todo... -} - // generate a random string, length of it is n. const generateRandomId = (n) => { const str = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] @@ -53,7 +61,7 @@ module.exports = { resolveApp, resolveTool, getDocsConfig, - replaceFileContent, + replaceForFrontMatter, generateRandomId, // common paths docsGitIgnore: resolveApp('.gitignore'), From 0ce529a91b10b21ccca3135a19f8de6e99942e7c Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 12 Oct 2021 13:31:50 +0800 Subject: [PATCH 263/352] docs: update abbrlink --- README.md | 25 +++++++++++++------ docs/Front-matter.md | 22 ++++++++++++++++ ...64\346\226\260\346\227\245\345\277\227.md" | 8 ++++++ 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f5dd7d98..0492c293 100644 --- a/README.md +++ b/README.md @@ -32,11 +32,13 @@ abbrlink: s31w9gd1 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 * 性能: 通过`预渲染`、`懒加载`大幅提升站点加载速度。 * 基于 mdx: 支持在 markdown 中`书写 React 组件`、数学公式等。 -* 搜索引擎优化: `支持 SEO`, 让文档更易被搜索。相关文档: [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) -* 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E4%B8%BB%E9%A2%98/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 +* 搜索引擎优化: + * 支持 SEO, 让文档更易被搜索。 + * 支持短链,以让链接持久化。 +* 个性化: 支持[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 -> [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) +> [快速上手](https://muyunyun.cn/create-react-doc/290a4219) ## 主题 @@ -52,9 +54,9 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) -* [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) +* [diana](https://github.com/MuYunyun/diana) -如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/自定义主题)章节。 +如果您想定制化或者分享个人主题, 可以参考[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 ## 快速上手 @@ -90,7 +92,7 @@ yarn create react-doc doc ## 站点发布 -在 [快速上手](http://muyunyun.cn/create-react-doc/快速上手) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 +在 [快速上手](https://muyunyun.cn/create-react-doc/290a4219) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 ### 自动打包发布到 gh-pages (推荐) @@ -109,4 +111,13 @@ git remote add origin https://github.com/用户或组织名/项目名.git git push -u origin main ``` -> 更多内容可以访问 [站点发布](http://muyunyun.cn/create-react-doc/站点发布)、[高阶用法](http://muyunyun.cn/create-react-doc/高阶用法)、[其它工具](http://muyunyun.cn/create-react-doc/其它工具) 等章节。 +## 更多内容 + +* [站点发布](http://muyunyun.cn/create-react-doc/ude9296y) +* [高阶用法](http://muyunyun.cn/create-react-doc/9v9ug9h8) +* [其它工具](http://muyunyun.cn/create-react-doc/292h2c5k) +* [Front-matter](http://muyunyun.cn/create-react-doc/49g6b239) + +## 扩展阅读 + +* [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) \ No newline at end of file diff --git a/docs/Front-matter.md b/docs/Front-matter.md index 72a4559c..a1bb2a7d 100644 --- a/docs/Front-matter.md +++ b/docs/Front-matter.md @@ -17,3 +17,25 @@ abbrlink: 290a4219 | 参数 | 描述 | 默认值 | | :------- | :-------------------------------------------------------------- | :----- | | abbrlink | 短链。用于指定页面路由展示为指定短链,使用短链有助于 SEO 搜索。 | | + +## 链接持久化 + +如果存在以下场景需求,可以考虑使用短链作为 URL 展示以进行优化。 + +* 需要链接持久化以更好地 SEO。 +* URL 链接中存在中文会被转码展示。 +* 经常调整文档的路径与文件名。 + +### 如何使用短链 + +在 `config.yml` 增加配置 `abbrlink: true` + +```diff ++ abbrlink: true +``` + +随后在控制台执行 `react-doc generate` 即可给 menu 配置属性中的所有文章目录文件加上短链资源。 + +```bash +react-doc generate // 一键给所有文章加上短链 +``` diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 2f341a6e..da0504ff 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.5.0 + +`2021-10-12` + +- **Feature** + + - 🚀 支持 react-doc generate 命令,给 md 文件自动补全短链。[issue](https://github.com/MuYunyun/create-react-doc/issues/87)、[mr](https://github.com/MuYunyun/create-react-doc/pull/194) + ### 1.4.0 `2021-10-08` From 986a95ae103a806a7cd44fc12ad88696e3c618a9 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 13 Oct 2021 13:34:08 +0800 Subject: [PATCH 264/352] feat: support default path for README --- "docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" | 2 +- packages/crd-seed/layout/index.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index da0504ff..7a4e552c 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -8,7 +8,7 @@ abbrlink: 179nqpxt ### 1.5.0 -`2021-10-12` +`2021-10-13` - **Feature** diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 79d3df71..4a504ea7 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -210,6 +210,10 @@ function BasicLayout({ const carryRepoInProd = ifProd && repo const renderContent = () => { + console.log('routeData', routeData) + const defaultPath = (routeData.find(data => data.path === '/README') + && routeData.find(data => data.path === '/README').mdconf + && routeData.find(data => data.path === '/README').mdconf.abbrlink) || 'README' return (
    {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} - + {routeData.map((item) => { const { path, mdconf, component } = item const { abbrlink } = mdconf From 90b0333032f6be39fde86bd0eb56bd12589e44ac Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 13 Oct 2021 18:56:27 +0800 Subject: [PATCH 265/352] feat: code review --- docs/Front-matter.md | 8 ++++---- .../\346\225\260\345\255\246\345\205\254\345\274\217.md" | 2 -- packages/crd-seed/layout/index.js | 1 - packages/crd-utils/index.js | 3 +-- packages/create-react-doc/README.md | 2 +- 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/Front-matter.md b/docs/Front-matter.md index a1bb2a7d..84096730 100644 --- a/docs/Front-matter.md +++ b/docs/Front-matter.md @@ -20,11 +20,11 @@ abbrlink: 290a4219 ## 链接持久化 -如果存在以下场景需求,可以考虑使用短链作为 URL 展示以进行优化。 +在以下场景需求场合中,可以展示短链以优化 URL 的显示。 -* 需要链接持久化以更好地 SEO。 +* SEO 场景下需要链接持久化。 * URL 链接中存在中文会被转码展示。 -* 经常调整文档的路径与文件名。 +* 文档的路径与文件名经常变更。 ### 如何使用短链 @@ -34,7 +34,7 @@ abbrlink: 290a4219 + abbrlink: true ``` -随后在控制台执行 `react-doc generate` 即可给 menu 配置属性中的所有文章目录文件加上短链资源。 +做好上述配置后,接着在控制台执行 `react-doc generate` 即可给 menu 配置属性中的所有文章目录文件加上短链资源。 ```bash react-doc generate // 一键给所有文章加上短链 diff --git "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" index ce37e75f..fd6512d9 100644 --- "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" +++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" @@ -1,7 +1,5 @@ ## 数学公式 diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 4a504ea7..94419f7c 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -210,7 +210,6 @@ function BasicLayout({ const carryRepoInProd = ifProd && repo const renderContent = () => { - console.log('routeData', routeData) const defaultPath = (routeData.find(data => data.path === '/README') && routeData.find(data => data.path === '/README').mdconf && routeData.find(data => data.path === '/README').mdconf.abbrlink) || 'README' diff --git a/packages/crd-utils/index.js b/packages/crd-utils/index.js index 6b12c186..f8f04fe5 100644 --- a/packages/crd-utils/index.js +++ b/packages/crd-utils/index.js @@ -2,14 +2,13 @@ const fs = require('fs') const yaml = require('js-yaml') const { resolveApp, resolveTool } = require('./path') +/* avoid reference loop, so use resolveApp('config.yml') instead of refrence from paths. */ const docsConfig = resolveApp('config.yml') /** * get docs config, see https://github.com/nodeca/js-yaml/blob/2d1fbed8f3a76ff93cccb9a8a418b4c4a482d3d9/lib/js-yaml/loader.js#L1590-L1592 */ const getDocsConfig = () => { - /* avoid reference loop, so use resolveApp('config.yml') instead of refrence from paths. */ - // const docsConfig = resolveApp('config.yml') if (!fs.existsSync(docsConfig)) { return null } diff --git a/packages/create-react-doc/README.md b/packages/create-react-doc/README.md index b04c5f74..a4a4ad28 100644 --- a/packages/create-react-doc/README.md +++ b/packages/create-react-doc/README.md @@ -25,4 +25,4 @@ $ react-doc generate // 用于自动生成 Front-matter 中相关字段信息 # 调试 -进入此包目录, 执行 yarn link, 即可在全局使用 react-doc xxx 命令。 +进入该目录, 执行 `yarn link`, 即可在全局使用 react-doc xxx 命令。 From a1064487fec1a857b228e62729ca5e816f1354cd Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 14 Oct 2021 12:40:11 +0800 Subject: [PATCH 266/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 6 +++--- packages/crd-seed/package.json | 2 +- packages/crd-templates/package.json | 2 +- packages/crd-theme/package.json | 2 +- packages/crd-utils/package.json | 2 +- packages/create-react-doc/package.json | 8 ++++---- packages/leetcode-cli/package.json | 4 ++-- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lerna.json b/lerna.json index 90dd9511..bca50ded 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.4.0", + "version": "1.5.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 860393f8..37cb62d2 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.4.0", + "version": "1.5.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -25,8 +25,8 @@ "copy-template-dir": "^1.3.0", "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", - "crd-theme": "^1.3.2", - "crd-utils": "^1.1.3", + "crd-theme": "^1.5.0", + "crd-utils": "^1.5.0", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", "detect-port": "^1.2.2", diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index da5f5124..8dafc1d0 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.4.0", + "version": "1.5.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-templates/package.json b/packages/crd-templates/package.json index 3df89495..2a5f29a0 100644 --- a/packages/crd-templates/package.json +++ b/packages/crd-templates/package.json @@ -1,6 +1,6 @@ { "name": "crd-templates", - "version": "1.3.5", + "version": "1.5.0", "description": "Default Templates with Create React Doc", "repository": { "type": "git", diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json index 9c26accb..f3801d42 100644 --- a/packages/crd-theme/package.json +++ b/packages/crd-theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.3.2", + "version": "1.5.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-utils/package.json b/packages/crd-utils/package.json index cde08600..672ef44d 100644 --- a/packages/crd-utils/package.json +++ b/packages/crd-utils/package.json @@ -1,6 +1,6 @@ { "name": "crd-utils", - "version": "1.1.3", + "version": "1.5.0", "description": "Utils with create react doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index dfbfadb1..ad754312 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.4.0", + "version": "1.5.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.4.0", - "crd-templates": "^1.3.5", - "crd-theme": "^1.3.2", + "crd-scripts": "^1.5.0", + "crd-templates": "^1.5.0", + "crd-theme": "^1.5.0", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index b1236eaa..bb118dff 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "1.1.5", + "version": "1.5.0", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" @@ -8,7 +8,7 @@ "dependencies": { "axios": "^0.21.1", "commander": "^2.20.0", - "crd-utils": "^1.1.3", + "crd-utils": "^1.5.0", "enquirer": "^2.3.0", "graphql-request": "^1.8.2", "inquirer": "^7.3.3", From fee697fc1941512b2b4f55a8b4ab3ce9b496c296 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 15 Oct 2021 13:39:39 +0800 Subject: [PATCH 267/352] fix: init menu selected --- packages/crd-seed/layout/index.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 94419f7c..d76ea532 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react' +import * as React from 'react' import { Switch, Link, Route, Redirect } from 'react-router-dom' import cx from 'classnames' import Menu from '../component/Menu' @@ -13,6 +13,7 @@ import logo from '../crd.logo.svg' import styles from './index.less' import '../style/mobile.less' +const { useState, useEffect } = React const SubMenu = Menu.SubMenu function BasicLayout({ @@ -31,18 +32,19 @@ function BasicLayout({ useEffect(() => { if (ifPrerender) { scrollToTop() - // eslint-disable-next-line no-undef INJECT?.inject?.() } }, []) useEffect(() => { - // eslint-disable-next-line no-undef INJECT?.injectWithPathname?.(pathname) }, [pathname]) useEffect(() => { - const newPathName = location.pathname + const { pathname } = location + const newPathName = pathname.endsWith('/') + ? pathname.slice(0, pathname.length - 1) + : pathname setSelectedKey(newPathName) }, location) From b37018b743b00649b127e21d864984050e46a1a5 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 17 Oct 2021 13:43:53 +0800 Subject: [PATCH 268/352] fix: menu init selected --- config.yml | 1 + ...6\265\213\350\257\225\350\267\257\347\224\261.md" | 1 + packages/crd-seed/layout/index.js | 12 ++++++++---- 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 "docs/\346\265\213\350\257\225/\346\265\213\350\257\225\350\267\257\347\224\261.md" diff --git a/config.yml b/config.yml index 33153c05..3fc88779 100644 --- a/config.yml +++ b/config.yml @@ -16,6 +16,7 @@ menu: [ docs/书写组件.md, docs/高阶用法.md, docs/其它工具.md, + docs/测试 ] ## set init open menu keys # menuOpenKeys: diff --git "a/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\350\267\257\347\224\261.md" "b/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\350\267\257\347\224\261.md" new file mode 100644 index 00000000..b3ef80ac --- /dev/null +++ "b/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\350\267\257\347\224\261.md" @@ -0,0 +1 @@ +* 该页面用来测试未使用 abbrlink 的中文路径。 \ No newline at end of file diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index d76ea532..a24e12cc 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -42,9 +42,13 @@ function BasicLayout({ useEffect(() => { const { pathname } = location - const newPathName = pathname.endsWith('/') - ? pathname.slice(0, pathname.length - 1) - : pathname + let newPathName = pathname + if (newPathName.endsWith('/')) { + newPathName.slice(0, newPathName.length - 1) + } + if (newPathName.startsWith(`/${repo}`)) { + newPathName.slice(`/${repo}`.length, newPathName.length) + } setSelectedKey(newPathName) }, location) @@ -54,7 +58,6 @@ function BasicLayout({ window.scrollTo(0, 0) } const renderSubMenuItem = (menus) => { - /* eslint-disable */ return ( <> {menus.map((item, index) => { @@ -98,6 +101,7 @@ function BasicLayout({ } const renderMenu = (menus) => { if (menus.length < 1) return null + console.log('selectedKey', selectedKey) return ( Date: Sun, 17 Oct 2021 18:31:14 +0800 Subject: [PATCH 269/352] fix: menu init selected --- packages/crd-seed/component/NoMatch/index.js | 2 +- packages/crd-seed/layout/index.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/crd-seed/component/NoMatch/index.js b/packages/crd-seed/component/NoMatch/index.js index 46f29cf3..06574f81 100644 --- a/packages/crd-seed/component/NoMatch/index.js +++ b/packages/crd-seed/component/NoMatch/index.js @@ -9,7 +9,7 @@ const Footer = () => {
  • diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index a24e12cc..e1d7baa6 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -43,11 +43,12 @@ function BasicLayout({ useEffect(() => { const { pathname } = location let newPathName = pathname + // fix https://github.com/MuYunyun/create-react-doc/issues/195 if (newPathName.endsWith('/')) { - newPathName.slice(0, newPathName.length - 1) + newPathName = newPathName.slice(0, newPathName.length - 1) } if (newPathName.startsWith(`/${repo}`)) { - newPathName.slice(`/${repo}`.length, newPathName.length) + newPathName = newPathName.slice(`/${repo}`.length, newPathName.length) } setSelectedKey(newPathName) }, location) @@ -101,7 +102,6 @@ function BasicLayout({ } const renderMenu = (menus) => { if (menus.length < 1) return null - console.log('selectedKey', selectedKey) return ( Date: Mon, 18 Oct 2021 19:18:18 +0800 Subject: [PATCH 270/352] fix: menu init selected --- packages/crd-seed/layout/index.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index e1d7baa6..cc98ef84 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -23,11 +23,13 @@ function BasicLayout({ indexProps, }) { const { pathname } = location - // eslint-disable-next-line no-undef const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) const [selectedKey, setSelectedKey] = useState('') const curOpenKeys = getOpenSubMenuKeys(pathname, menuOpenKeys) + const defaultPath = (routeData.find(data => data.path === '/README') + && routeData.find(data => data.path === '/README').mdconf + && routeData.find(data => data.path === '/README').mdconf.abbrlink) || 'README' useEffect(() => { if (ifPrerender) { @@ -50,8 +52,8 @@ function BasicLayout({ if (newPathName.startsWith(`/${repo}`)) { newPathName = newPathName.slice(`/${repo}`.length, newPathName.length) } - setSelectedKey(newPathName) - }, location) + setSelectedKey(newPathName || defaultPath) + }, location.pathname) const scrollToTop = () => { document.body.scrollTop = 0 @@ -214,11 +216,7 @@ function BasicLayout({ ) } - const carryRepoInProd = ifProd && repo const renderContent = () => { - const defaultPath = (routeData.find(data => data.path === '/README') - && routeData.find(data => data.path === '/README').mdconf - && routeData.find(data => data.path === '/README').mdconf.abbrlink) || 'README' return (
    Date: Mon, 18 Oct 2021 23:56:39 +0800 Subject: [PATCH 271/352] docs: update 1.5.1 --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 7a4e552c..12567993 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.5.1 + +`2021-10-19` + +- **Fix** + + - 🐞 修复页面首屏菜单栏未高亮选中的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/195)。 + ### 1.5.0 `2021-10-13` From c251565d5981fbc0e0d056fac52d70842d38f4bc Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 18 Oct 2021 23:59:48 +0800 Subject: [PATCH 272/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index bca50ded..895e10cb 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.5.0", + "version": "1.5.1", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 8dafc1d0..7981c792 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.5.0", + "version": "1.5.1", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 0becb1d782ac611bd484e9aeaec5570631b90287 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 19 Oct 2021 13:30:07 +0800 Subject: [PATCH 273/352] fix: edit in github --- packages/crd-seed/layout/index.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index cc98ef84..067ab460 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -136,15 +136,23 @@ function BasicLayout({ * such as edit in github and so on. */ const renderPageHeader = () => { - const curMenuSource = menuSource.filter(r => pathname.indexOf(r.title) > -1) + console.log('routeData', routeData) + console.log('menuSource', menuSource) + const curMenuSource = routeData.filter(r => { + if (r.props.type === 'directory') return false + return pathname.indexOf(r.mdconf.abbrlink) > -1 || decodeURIComponent(pathname).indexOf(r.path) > -1 + }) const editPathName = curMenuSource[0] && curMenuSource[0].path + console.log('curMenuSource', curMenuSource) + console.log('a link', `https://github.com/${user}/${repo + }/edit/${branch}${editPathName}.md`) return (
    {user && repo ? ( From 528105c11e487d9ea4f6d35aeef2c231c34b65cc Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 19 Oct 2021 18:52:36 +0800 Subject: [PATCH 274/352] fix: https://github.com/MuYunyun/create-react-doc/issues/205 --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/crd-seed/layout/index.js | 9 ++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 12567993..5d4eb67e 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.5.2 + +`2021-10-19` + +- **Fix** + + - 🐞 修复点击右上角 `Edit in GitHub` 链接跳转错误的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/205)。 + ### 1.5.1 `2021-10-19` diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 067ab460..b1656df2 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -136,23 +136,18 @@ function BasicLayout({ * such as edit in github and so on. */ const renderPageHeader = () => { - console.log('routeData', routeData) - console.log('menuSource', menuSource) const curMenuSource = routeData.filter(r => { if (r.props.type === 'directory') return false return pathname.indexOf(r.mdconf.abbrlink) > -1 || decodeURIComponent(pathname).indexOf(r.path) > -1 }) - const editPathName = curMenuSource[0] && curMenuSource[0].path - console.log('curMenuSource', curMenuSource) - console.log('a link', `https://github.com/${user}/${repo - }/edit/${branch}${editPathName}.md`) + const editPathName = curMenuSource[0] && curMenuSource[0].props.path return (
    {user && repo ? ( From e14403e177191c3662e2e2dd8142f733fe56cd90 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 20 Oct 2021 00:37:19 +0800 Subject: [PATCH 275/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 895e10cb..d03492af 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.5.1", + "version": "1.5.2", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 7981c792..279e0fa7 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.5.1", + "version": "1.5.2", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 49230f04b842c87ff7d2a8b005f4e5c960e737aa Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 20 Oct 2021 13:36:56 +0800 Subject: [PATCH 276/352] fix: https://github.com/MuYunyun/create-react-doc/issues/206 --- .../crd-scripts/src/conf/getPrerenderRoutes.js | 15 +++++++++++---- .../crd-scripts/src/conf/webpack.config.prod.js | 15 ++++++++++----- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index 0170d55e..520f65fc 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -1,8 +1,6 @@ const DirectoryTree = require('./node-directory-tree') -// eg: ['docs/quick_start.md', 'a'] -// output: ['/quick_start', '/a/b', '/a/b/c'] -const getPrerenderRoutes = (cmd) => { +const getDirTree = (cmd) => { const dir = cmd.markdownPaths const dirs = Array.isArray(dir) ? dir : [dir] const otherProps = { @@ -14,6 +12,12 @@ const getPrerenderRoutes = (cmd) => { path, options: otherProps, })) + return dirTree +} + +// eg: ['docs/quick_start.md', 'a'] +// output: ['/quick_start', '/a/b', '/a/b/c'] +const getPrerenderRoutes = (dirTree) => { const result = getPrerenderRoute(dirTree) result.push('/404') return result @@ -47,4 +51,7 @@ function recursive(data, routePath, arr) { return arr } -module.exports = getPrerenderRoutes +module.exports = { + getDirTree, + getPrerenderRoutes +} diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index d6449361..4a298c0f 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -7,19 +7,21 @@ const CopyMarkdownImageWebpackPlugin = require('copy-markdown-image-webpack-plug const MiniCssExtractPlugin = require('mini-css-extract-plugin') const PrerenderSPAPlugin = require('crd-prerender-spa-plugin') const { generateSiteMap } = require('crd-generator-sitemap') -// const CssMinimizerPlugin = require('css-minimizer-webpack-plugin') -// const UglifyJsPlugin = require('uglifyjs-webpack-plugin') const fs = require('fs-extra') const { defaultHTMLPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('crd-utils') const config = require('./webpack.config') const paths = require('./path') -const getPrerenderRoutes = require('./getPrerenderRoutes') +const { getPrerenderRoutes, getDirTree } = require('./getPrerenderRoutes') const Renderer = PrerenderSPAPlugin.PuppeteerRenderer module.exports = function (cmd) { const docsConfig = getDocsConfig() + const dirTree = getDirTree(cmd) + const routes = getPrerenderRoutes(dirTree) + console.log('dirTree', dirTree) + config.mode = 'production' config.entry = [paths.appIndexJs] // config.output.filename = 'js/[hash:8].js' @@ -121,8 +123,6 @@ module.exports = function (cmd) { // ], } - const routes = getPrerenderRoutes(cmd) - config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('prod'), @@ -170,6 +170,11 @@ module.exports = function (cmd) { await fs.copy(`${docsBuildDist}/${docsConfig.repo}`, docsBuildDist) await fs.remove(`${docsBuildDist}/${docsConfig.repo}`) // move README as root index.html + // todo: replace README with correct path + + + + await fs.copy(`${docsBuildDist}/README/index.html`, `${docsBuildDist}/index.html`) console.log('✅ generate prerender file success!') if (docsConfig.seo) { From 933d72eb70b7792a83ec20563de003b028282c7a Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 21 Oct 2021 18:41:44 +0800 Subject: [PATCH 277/352] fix: update generate sitemap --- packages/crd-scripts/src/conf/node-directory-tree.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index cf2ea2a6..e6d67050 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -126,7 +126,6 @@ function directoryTree({ } else if (stats.isDirectory()) { const dirData = safeReadDirSync(path) if (dirData === null) return null - item.children = dirData .map(child => directoryTree({ @@ -135,6 +134,7 @@ function directoryTree({ }), ) .filter(e => !!e) + console.log('item.children', item.children) item.type = constants.DIRECTORY if (!options.prerender) { item.size = item.children.reduce((prev, cur) => prev + cur.size, 0) From 54291d5d2d191350c065f52b34d03b1561c5797d Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 24 Oct 2021 19:24:54 +0800 Subject: [PATCH 278/352] fix: update generate sitemap --- packages/crd-scripts/src/conf/getPrerenderRoutes.js | 8 +++++--- packages/crd-scripts/src/conf/node-directory-tree.js | 2 +- packages/crd-scripts/src/conf/webpack.config.prod.js | 7 +++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index 520f65fc..2bc9d977 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -12,13 +12,15 @@ const getDirTree = (cmd) => { path, options: otherProps, })) + // console.log('dirTree', dirTree) return dirTree } // eg: ['docs/quick_start.md', 'a'] // output: ['/quick_start', '/a/b', '/a/b/c'] const getPrerenderRoutes = (dirTree) => { - const result = getPrerenderRoute(dirTree) + const dpCloneDirTree = JSON.parse(JSON.stringify(dirTree)) + const result = getPrerenderRoute(dpCloneDirTree) result.push('/404') return result } @@ -36,8 +38,8 @@ function recursive(data, routePath, arr) { if (item.type === 'directory') { if (item.children && item.children.length > 0) { - // eslint-disable-next-line no-unused-vars - item.children = recursive(item.children, composeRouteName, arr) + // todo: judge if use deep clone to isolate them. + // item.children = recursive(item.children, composeRouteName, arr) } else { item.children = [] } diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index e6d67050..90a33240 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -125,6 +125,7 @@ function directoryTree({ } } else if (stats.isDirectory()) { const dirData = safeReadDirSync(path) + console.log('dirData', dirData) if (dirData === null) return null item.children = dirData .map(child => @@ -134,7 +135,6 @@ function directoryTree({ }), ) .filter(e => !!e) - console.log('item.children', item.children) item.type = constants.DIRECTORY if (!options.prerender) { item.size = item.children.reduce((prev, cur) => prev + cur.size, 0) diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index 4a298c0f..31ec90f6 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -20,7 +20,6 @@ module.exports = function (cmd) { const docsConfig = getDocsConfig() const dirTree = getDirTree(cmd) const routes = getPrerenderRoutes(dirTree) - console.log('dirTree', dirTree) config.mode = 'production' config.entry = [paths.appIndexJs] @@ -29,6 +28,8 @@ module.exports = function (cmd) { config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}/` : '/' config.output.path = docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist + console.log('dirTree12345', dirTree) + config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { const loaders = [] @@ -172,7 +173,9 @@ module.exports = function (cmd) { // move README as root index.html // todo: replace README with correct path - + const defaultPath = (dirTree.find(data => data.name === 'README.md') + && dirTree.find(data => data.name === 'README.md').mdconf + && dirTree.find(data => data.name === 'README.md').mdconf.abbrlink) || 'README' await fs.copy(`${docsBuildDist}/README/index.html`, `${docsBuildDist}/index.html`) From 436182c35c9cefd641eea1922eea0b639a13e4bd Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 25 Oct 2021 13:31:12 +0800 Subject: [PATCH 279/352] fix: generate sitemap --- packages/crd-scripts/src/conf/getPrerenderRoutes.js | 4 +--- packages/crd-scripts/src/conf/node-directory-tree.js | 1 - packages/crd-scripts/src/conf/webpack.config.prod.js | 11 ++--------- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index 2bc9d977..7a9eb3f2 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -12,7 +12,6 @@ const getDirTree = (cmd) => { path, options: otherProps, })) - // console.log('dirTree', dirTree) return dirTree } @@ -38,8 +37,7 @@ function recursive(data, routePath, arr) { if (item.type === 'directory') { if (item.children && item.children.length > 0) { - // todo: judge if use deep clone to isolate them. - // item.children = recursive(item.children, composeRouteName, arr) + item.children = recursive(item.children, composeRouteName, arr) } else { item.children = [] } diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 90a33240..0fe52fbb 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -125,7 +125,6 @@ function directoryTree({ } } else if (stats.isDirectory()) { const dirData = safeReadDirSync(path) - console.log('dirData', dirData) if (dirData === null) return null item.children = dirData .map(child => diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index 31ec90f6..6ac7d747 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -27,9 +27,6 @@ module.exports = function (cmd) { config.output.chunkFilename = 'js/[name].[hash:8].js' config.output.publicPath = docsConfig.repo ? `/${docsConfig.repo}/` : '/' config.output.path = docsConfig.repo ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist - - console.log('dirTree12345', dirTree) - config.module.rules = config.module.rules.map((item) => { if (item.oneOf) { const loaders = [] @@ -170,15 +167,11 @@ module.exports = function (cmd) { // not use fs.move here or it'll throw error in github action await fs.copy(`${docsBuildDist}/${docsConfig.repo}`, docsBuildDist) await fs.remove(`${docsBuildDist}/${docsConfig.repo}`) - // move README as root index.html - // todo: replace README with correct path - const defaultPath = (dirTree.find(data => data.name === 'README.md') && dirTree.find(data => data.name === 'README.md').mdconf && dirTree.find(data => data.name === 'README.md').mdconf.abbrlink) || 'README' - - - await fs.copy(`${docsBuildDist}/README/index.html`, `${docsBuildDist}/index.html`) + // move README as root index.html + await fs.copy(`${docsBuildDist}/${defaultPath}/index.html`, `${docsBuildDist}/index.html`) console.log('✅ generate prerender file success!') if (docsConfig.seo) { if (docsConfig.seo.google) { From c078156a05161cba9ebbe78d5c386381f90d0c56 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 25 Oct 2021 13:49:20 +0800 Subject: [PATCH 280/352] docs: update changelog --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 5d4eb67e..86c07295 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.5.3 + +`2021-10-25` + +- **Fix** + + - 🐞 修复在使用短链时,站点 sitemap.xml 文件生成丢失的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/206)。 + ### 1.5.2 `2021-10-19` From 6bcbe6e560959e95407c815c28bd5b6e49b07604 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 25 Oct 2021 18:52:22 +0800 Subject: [PATCH 281/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 2 +- packages/create-react-doc/package.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lerna.json b/lerna.json index d03492af..1809998f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.5.2", + "version": "1.5.3", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 37cb62d2..cc225fe9 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.5.0", + "version": "1.5.3", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index ad754312..b21752f0 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.5.0", + "version": "1.5.3", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.5.0", + "crd-scripts": "^1.5.3", "crd-templates": "^1.5.0", "crd-theme": "^1.5.0", "fs-extra": "^5.0.0" From 45ac4387f6435c31d19855dd005f3baa990ff4b6 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 26 Oct 2021 19:02:22 +0800 Subject: [PATCH 282/352] feat: optimize seo title --- packages/crd-theme/markdown/index.js | 2 ++ packages/crd-theme/package.json | 5 ++++- yarn.lock | 29 +++++++++++++++++++--------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/packages/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js index 391022a2..a8fb72d2 100644 --- a/packages/crd-theme/markdown/index.js +++ b/packages/crd-theme/markdown/index.js @@ -13,6 +13,8 @@ const components = { function Markdown(markdownProps) { const { props } = markdownProps + console.log('props', props) + // todo props.title const { relative } = props const [MarkdownCP, setMarkdownCP] = useState(null) const markdownWrapperRef = useRef(null) diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json index f3801d42..ccf80382 100644 --- a/packages/crd-theme/package.json +++ b/packages/crd-theme/package.json @@ -25,5 +25,8 @@ }, "author": "muyunyun", "license": "MIT", - "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" + "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199", + "devDependencies": { + "react-helmet": "^6.1.0" + } } diff --git a/yarn.lock b/yarn.lock index 1d9f577c..9cd79e6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4096,15 +4096,6 @@ crd-prerender-spa-plugin@^0.2.0: "@prerenderer/renderer-puppeteer" "^0.2.0" html-minifier "^4.0.0" -crd-seed@0.2.24: - version "0.2.24" - resolved "https://registry.npmjs.org/crd-seed/-/crd-seed-0.2.24.tgz#50ace28c8fe1c96a3cbef259ffcef08677eb5ba2" - integrity sha512-YwQKdCh3LNkQxOqnLeKPmhpfMuNVT1uGh4hhkEF/8yQ465sfnTKtntflVvOIRpF6DAr8SBCpiILXyw8xkxaD/g== - dependencies: - react-markdown "^3.3.0" - react-router-dom "^4.2.2" - react-switch "^5.0.1" - cross-fetch@2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" @@ -10105,6 +10096,21 @@ react-error-overlay@^4.0.0: resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz#417addb0814a90f3a7082eacba7cee588d00da89" integrity sha512-xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw== +react-fast-compare@^3.1.1: + version "3.2.0" + resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== + +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + react-hot-loader@^4.1.1: version "4.13.0" resolved "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.0.tgz#c27e9408581c2a678f5316e69c061b226dc6a202" @@ -10166,6 +10172,11 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" +react-side-effect@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" + integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== + react-switch@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/react-switch/-/react-switch-5.0.1.tgz#449277f4c3aed5286fffd0f50d5cbc2a23330406" From 0d2d8e71f3027c4e8d2ec550b660cfad8eb77286 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 27 Oct 2021 19:18:46 +0800 Subject: [PATCH 283/352] feat: optimize seo title --- packages/crd-theme/markdown/index.js | 22 +++++++++++++++------- yarn.lock | 9 +++++++++ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/packages/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js index a8fb72d2..ae176db0 100644 --- a/packages/crd-theme/markdown/index.js +++ b/packages/crd-theme/markdown/index.js @@ -1,6 +1,7 @@ import { useState, useEffect, useRef } from 'react' import cx from 'classnames' import { MDXProvider } from '@mdx-js/react' +import { Helmet } from 'react-helmet' import CodeBlock from './codeBlock' import Link from './Link' import Loading from '../component/Loading' @@ -35,19 +36,26 @@ function Markdown(markdownProps) { renderMarkdown() }, []) + console.log('props', props) return ( -
    - { - MarkdownCP - ? + <> + + {props.title} + + +
    + { + MarkdownCP + ? - : - } -
    + : + } +
    + ) } diff --git a/yarn.lock b/yarn.lock index 9cd79e6f..4cbd754a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4096,6 +4096,15 @@ crd-prerender-spa-plugin@^0.2.0: "@prerenderer/renderer-puppeteer" "^0.2.0" html-minifier "^4.0.0" +crd-seed@0.2.24: + version "0.2.24" + resolved "https://registry.npmjs.org/crd-seed/-/crd-seed-0.2.24.tgz#50ace28c8fe1c96a3cbef259ffcef08677eb5ba2" + integrity sha512-YwQKdCh3LNkQxOqnLeKPmhpfMuNVT1uGh4hhkEF/8yQ465sfnTKtntflVvOIRpF6DAr8SBCpiILXyw8xkxaD/g== + dependencies: + react-markdown "^3.3.0" + react-router-dom "^4.2.2" + react-switch "^5.0.1" + cross-fetch@2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" From 6490e365cff45e4944c779ae1758f8ec155fb248 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 28 Oct 2021 19:14:03 +0800 Subject: [PATCH 284/352] feat: optimize seo title --- packages/crd-scripts/src/web/Router.js | 9 ++++++--- packages/crd-seed/layout/index.js | 1 + packages/crd-theme/markdown/index.js | 8 +++++--- packages/crd-theme/package.json | 6 ++---- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/crd-scripts/src/web/Router.js b/packages/crd-scripts/src/web/Router.js index 8f15144b..e5313037 100644 --- a/packages/crd-scripts/src/web/Router.js +++ b/packages/crd-scripts/src/web/Router.js @@ -29,18 +29,21 @@ function menuSourceFormat(data, routePath, article) { const routePropsCurrent = `${routePath || ''}/${item.name}`.replace(/.md$/, '') if (item.type === 'directory') { if (item.children && item.children.length > 0) { - item.title = item.name.replace(item.extension, '') + item.title = 'test aaa' + // item.title = item.name.replace(item.extension, '') item.mdconf = {} item.props = { isEmpty: true } item.children = menuSourceFormat(item.children, routePropsCurrent, article || item.name) } else { - item.title = item.name.replace(item.extension, '') + item.title = 'test bbb' + // item.title = item.name.replace(item.extension, '') item.mdconf = { title: item.name } item.props = { isEmpty: true } item.children = [] } } else { - item.title = item.mdconf && item.mdconf.title ? item.mdconf.title : item.name.replace(item.extension, '') + item.title = 'test ccc' + // item.title = item.mdconf && item.mdconf.title ? item.mdconf.title : item.name.replace(item.extension, '') if (!item.mdconf) { item.props = { isEmpty: true } } diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index b1656df2..677fc81d 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -230,6 +230,7 @@ function BasicLayout({ {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} {routeData.map((item) => { + console.log('item', item) const { path, mdconf, component } = item const { abbrlink } = mdconf const enhancePath = abbrlink ? `/${abbrlink}` : path diff --git a/packages/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js index ae176db0..a00bf8a9 100644 --- a/packages/crd-theme/markdown/index.js +++ b/packages/crd-theme/markdown/index.js @@ -14,9 +14,8 @@ const components = { function Markdown(markdownProps) { const { props } = markdownProps - console.log('props', props) - // todo props.title const { relative } = props + console.log('props', props) const [MarkdownCP, setMarkdownCP] = useState(null) const markdownWrapperRef = useRef(null) @@ -36,7 +35,10 @@ function Markdown(markdownProps) { renderMarkdown() }, []) - console.log('props', props) + useEffect(() => { + // to test + }, [props.title]) + return ( <> diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json index ccf80382..85f59d8d 100644 --- a/packages/crd-theme/package.json +++ b/packages/crd-theme/package.json @@ -11,6 +11,7 @@ "prism-react-renderer": "^1.2.1", "react": "^17.0.1", "react-dom": "^17.0.1", + "react-helmet": "^6.1.0", "react-hot-loader": "^4.1.1", "react-markdown": "^3.3.0" }, @@ -25,8 +26,5 @@ }, "author": "muyunyun", "license": "MIT", - "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199", - "devDependencies": { - "react-helmet": "^6.1.0" - } + "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" } From c8f0792fddfcdc9cfc5efac9f94b1fd31e28d212 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 29 Oct 2021 21:05:16 +0800 Subject: [PATCH 285/352] feat: optimize seo title --- packages/crd-scripts/src/web/Router.js | 9 +++------ packages/crd-seed/component/Header/index.js | 2 -- packages/crd-seed/layout/index.js | 1 - packages/crd-theme/index.js | 2 +- packages/crd-theme/markdown/index.js | 17 +++++++++-------- 5 files changed, 13 insertions(+), 18 deletions(-) diff --git a/packages/crd-scripts/src/web/Router.js b/packages/crd-scripts/src/web/Router.js index e5313037..8f15144b 100644 --- a/packages/crd-scripts/src/web/Router.js +++ b/packages/crd-scripts/src/web/Router.js @@ -29,21 +29,18 @@ function menuSourceFormat(data, routePath, article) { const routePropsCurrent = `${routePath || ''}/${item.name}`.replace(/.md$/, '') if (item.type === 'directory') { if (item.children && item.children.length > 0) { - item.title = 'test aaa' - // item.title = item.name.replace(item.extension, '') + item.title = item.name.replace(item.extension, '') item.mdconf = {} item.props = { isEmpty: true } item.children = menuSourceFormat(item.children, routePropsCurrent, article || item.name) } else { - item.title = 'test bbb' - // item.title = item.name.replace(item.extension, '') + item.title = item.name.replace(item.extension, '') item.mdconf = { title: item.name } item.props = { isEmpty: true } item.children = [] } } else { - item.title = 'test ccc' - // item.title = item.mdconf && item.mdconf.title ? item.mdconf.title : item.name.replace(item.extension, '') + item.title = item.mdconf && item.mdconf.title ? item.mdconf.title : item.name.replace(item.extension, '') if (!item.mdconf) { item.props = { isEmpty: true } } diff --git a/packages/crd-seed/component/Header/index.js b/packages/crd-seed/component/Header/index.js index 41f997de..f7761853 100644 --- a/packages/crd-seed/component/Header/index.js +++ b/packages/crd-seed/component/Header/index.js @@ -1,5 +1,3 @@ -/* eslint-disable react/jsx-no-target-blank */ -/* eslint-disable no-undef */ import { useState } from 'react' import classNames from 'classnames' import { Link } from 'react-router-dom' diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 677fc81d..b1656df2 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -230,7 +230,6 @@ function BasicLayout({ {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} {routeData.map((item) => { - console.log('item', item) const { path, mdconf, component } = item const { abbrlink } = mdconf const enhancePath = abbrlink ? `/${abbrlink}` : path diff --git a/packages/crd-theme/index.js b/packages/crd-theme/index.js index cba64f22..feb9ba25 100644 --- a/packages/crd-theme/index.js +++ b/packages/crd-theme/index.js @@ -1,4 +1,3 @@ -/* eslint-disable global-require */ // import Loading from './component/Loading' import Markdown from './routes/Pages' // import { ifProd, ifPrerender } from './utils' @@ -23,6 +22,7 @@ export default function (Lazyload, props) { // support for custom theme. const CustomTheme = require('__project_theme__').default + return ( // use custom theme here. diff --git a/packages/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js index a00bf8a9..3129fc0c 100644 --- a/packages/crd-theme/markdown/index.js +++ b/packages/crd-theme/markdown/index.js @@ -1,4 +1,4 @@ -import { useState, useEffect, useRef } from 'react' +import * as React from 'react' import cx from 'classnames' import { MDXProvider } from '@mdx-js/react' import { Helmet } from 'react-helmet' @@ -7,6 +7,8 @@ import Link from './Link' import Loading from '../component/Loading' import styles from './style/index.less' +const { useState, useEffect, useRef } = React + const components = { code: CodeBlock, link: Link, @@ -14,8 +16,7 @@ const components = { function Markdown(markdownProps) { const { props } = markdownProps - const { relative } = props - console.log('props', props) + const { relative, name } = props const [MarkdownCP, setMarkdownCP] = useState(null) const markdownWrapperRef = useRef(null) @@ -35,15 +36,15 @@ function Markdown(markdownProps) { renderMarkdown() }, []) - useEffect(() => { - // to test - }, [props.title]) + const getName = () => { + return name ? name.replace('.md', '') : '' + } return ( <> - {props.title} - + {getName()} +
    { From d421a6fcd69e2505df5b0369c9f4f1a021522f9a Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 29 Oct 2021 21:49:20 +0800 Subject: [PATCH 286/352] docs: update 1.6.0 --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 86c07295..97e2dc75 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.6.0 + +`2021-10-30` + +- **Feature** + + - 🚀 SEO 搜索标题优化,优化 document.title 与 meta 标签。[issue](https://github.com/MuYunyun/create-react-doc/issues/203) + ### 1.5.3 `2021-10-25` From 893f3ea27c14697582cfe50434f3bd58b2c4ada4 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 29 Oct 2021 21:51:32 +0800 Subject: [PATCH 287/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 4 ++-- packages/crd-seed/package.json | 2 +- packages/crd-theme/package.json | 2 +- packages/create-react-doc/package.json | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lerna.json b/lerna.json index 1809998f..29c7e7b2 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.5.3", + "version": "1.6.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index cc225fe9..3321f673 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.5.3", + "version": "1.6.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -25,7 +25,7 @@ "copy-template-dir": "^1.3.0", "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", - "crd-theme": "^1.5.0", + "crd-theme": "^1.6.0", "crd-utils": "^1.5.0", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 279e0fa7..bdf49041 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.5.2", + "version": "1.6.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json index 85f59d8d..96cb408d 100644 --- a/packages/crd-theme/package.json +++ b/packages/crd-theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.5.0", + "version": "1.6.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index b21752f0..6892fbe3 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.5.3", + "version": "1.6.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.5.3", + "crd-scripts": "^1.6.0", "crd-templates": "^1.5.0", - "crd-theme": "^1.5.0", + "crd-theme": "^1.6.0", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" From 7312d42666a5f4dfbc0ec4f38d521ca1a8e83489 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 20 Dec 2021 01:34:47 +0800 Subject: [PATCH 288/352] fix: menu init open --- packages/crd-seed/component/Menu/SubMenu.js | 2 ++ packages/crd-seed/layout/index.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/crd-seed/component/Menu/SubMenu.js b/packages/crd-seed/component/Menu/SubMenu.js index 8c93a7bb..7f90a65f 100644 --- a/packages/crd-seed/component/Menu/SubMenu.js +++ b/packages/crd-seed/component/Menu/SubMenu.js @@ -34,6 +34,8 @@ function SubMenu({ onHoverKey, defaultOpenKeys = [], } = useMenuContext() + console.log('defaultOpenKeys', defaultOpenKeys) + console.log('keyValue', keyValue) const [menuOpen, setMenuOpen] = useState(defaultOpenKeys.indexOf(keyValue) !== -1) const curSubmenu = useRef(null) const popupSubMenu = useRef(null) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index b1656df2..648ca453 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -26,7 +26,9 @@ function BasicLayout({ const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) const [selectedKey, setSelectedKey] = useState('') + // console.log() const curOpenKeys = getOpenSubMenuKeys(pathname, menuOpenKeys) + console.log('curOpenKeys', curOpenKeys) const defaultPath = (routeData.find(data => data.path === '/README') && routeData.find(data => data.path === '/README').mdconf && routeData.find(data => data.path === '/README').mdconf.abbrlink) || 'README' From 9360178ba245125539688f7a0a59b019ab07c3cf Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 20 Dec 2021 13:45:32 +0800 Subject: [PATCH 289/352] fix: menu init open --- packages/crd-seed/layout/index.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 648ca453..b50b857c 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -68,10 +68,17 @@ function BasicLayout({ {menus.map((item, index) => { const { mdconf, routePath } = item || {} const { abbrlink } = mdconf || {} + console.log('item', item) + // console.log('item', item) const path = abbrlink ? `/${abbrlink}` : routePath // item.path carrys .md here. return item.children && item.children.length > 0 ? ( - }> + } + > {renderSubMenuItem(item.children)} ) : ( @@ -126,7 +133,9 @@ function BasicLayout({ onSelect={(keyValue) => { setSelectedKey(keyValue) }} - defaultOpenKeys={curOpenKeys} + // defaultOpenKeys={curOpenKeys} + // todo: smart to fill defaultOpenKeys + defaultOpenKeys={['/docs/主题']} > {renderSubMenuItem(menus || [])} From 3bb1ba2e4a8c6eca6012ac412d6d7f423be02a43 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 21 Dec 2021 13:42:03 +0800 Subject: [PATCH 290/352] fix: menu init open --- packages/crd-seed/layout/index.js | 11 ++++++++- packages/crd-seed/layout/utils.js | 41 +++++++++++++++++++++++++------ 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index b50b857c..4f46b5dc 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -22,12 +22,20 @@ function BasicLayout({ menuSource, indexProps, }) { + console.log('menuSource', menuSource) + console.log('routeData', routeData) + const { pathname } = location + console.log('location', location) const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) const [selectedKey, setSelectedKey] = useState('') // console.log() - const curOpenKeys = getOpenSubMenuKeys(pathname, menuOpenKeys) + const curOpenKeys = getOpenSubMenuKeys({ + pathname, + menuSource, + menuOpenKeys + }) console.log('curOpenKeys', curOpenKeys) const defaultPath = (routeData.find(data => data.path === '/README') && routeData.find(data => data.path === '/README').mdconf @@ -113,6 +121,7 @@ function BasicLayout({ } const renderMenu = (menus) => { if (menus.length < 1) return null + return ( ["", "README"] */ const pathnameSplit = pathname.split('/') if (pathnameSplit.length <= 2) return result let recordValue = '' - // eslint-disable-next-line no-plusplus for (let i = 1; i < pathnameSplit.length - 1; i++) { recordValue += `/${pathnameSplit[i]}` result.push(recordValue) } + + /** default open menu from config.yml */ + if (menuOpenKeys) { + result.push(...menuOpenKeys.split(',')) + } + return result } +function getOpenSubMenuKeysForAbbrLink(source, pathname, result) { + for (let i = 0; i < source.length; i++) { + const { type, path, mdconf } = source[i] + if (type === 'directory') { + result.push(path) + const ifFind = getOpenSubMenuKeysForAbbrLink(source[i].children, pathname, result) + if (ifFind) return true + result.pop() + } else { + if (pathname.indexOf(mdconf.abbrlink) > -1) { + return true + } + } + } +} + export { getOpenSubMenuKeys } From d75c225457bcd1f15bb766d840313eb07486ebee Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 22 Dec 2021 13:41:50 +0800 Subject: [PATCH 291/352] fix: menu init open --- packages/crd-seed/layout/index.js | 6 ++---- packages/crd-seed/layout/utils.js | 26 +++++++++++++++++--------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 4f46b5dc..54cdb638 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -23,14 +23,12 @@ function BasicLayout({ indexProps, }) { console.log('menuSource', menuSource) - console.log('routeData', routeData) const { pathname } = location console.log('location', location) const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) const [selectedKey, setSelectedKey] = useState('') - // console.log() const curOpenKeys = getOpenSubMenuKeys({ pathname, menuSource, @@ -142,9 +140,9 @@ function BasicLayout({ onSelect={(keyValue) => { setSelectedKey(keyValue) }} - // defaultOpenKeys={curOpenKeys} + defaultOpenKeys={curOpenKeys} // todo: smart to fill defaultOpenKeys - defaultOpenKeys={['/docs/主题']} + // defaultOpenKeys={['/docs/主题']} > {renderSubMenuItem(menus || [])} diff --git a/packages/crd-seed/layout/utils.js b/packages/crd-seed/layout/utils.js index e50402df..de29a128 100644 --- a/packages/crd-seed/layout/utils.js +++ b/packages/crd-seed/layout/utils.js @@ -13,19 +13,24 @@ function getOpenSubMenuKeys({ menuOpenKeys }) { const result = [] - getOpenSubMenuKeysForAbbrLink(menuSource, pathname, result) + getOpenSubMenuKeysForAbbrLink( + menuSource, + decodeURI(pathname), + result + ) + /** * logic for not abbrLink * there is no pick item if the length of pathnameSplit is less than or equal to 2. * eg: /README => ["", "README"] */ - const pathnameSplit = pathname.split('/') - if (pathnameSplit.length <= 2) return result - let recordValue = '' - for (let i = 1; i < pathnameSplit.length - 1; i++) { - recordValue += `/${pathnameSplit[i]}` - result.push(recordValue) - } + // const pathnameSplit = pathname.split('/') + // if (pathnameSplit.length <= 2) return result + // let recordValue = '' + // for (let i = 1; i < pathnameSplit.length - 1; i++) { + // recordValue += `/${pathnameSplit[i]}` + // result.push(recordValue) + // } /** default open menu from config.yml */ if (menuOpenKeys) { @@ -44,7 +49,10 @@ function getOpenSubMenuKeysForAbbrLink(source, pathname, result) { if (ifFind) return true result.pop() } else { - if (pathname.indexOf(mdconf.abbrlink) > -1) { + if ( + pathname.indexOf(mdconf.abbrlink) > -1 + || (pathname === source[i].routePath) + ) { return true } } From ed67182cbd0321bc967b4230e388ea117766dcef Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 22 Dec 2021 18:55:00 +0800 Subject: [PATCH 292/352] docs: update --- packages/crd-seed/component/Menu/SubMenu.js | 2 -- packages/crd-seed/layout/index.js | 8 -------- packages/crd-seed/layout/utils.js | 1 - 3 files changed, 11 deletions(-) diff --git a/packages/crd-seed/component/Menu/SubMenu.js b/packages/crd-seed/component/Menu/SubMenu.js index 7f90a65f..8c93a7bb 100644 --- a/packages/crd-seed/component/Menu/SubMenu.js +++ b/packages/crd-seed/component/Menu/SubMenu.js @@ -34,8 +34,6 @@ function SubMenu({ onHoverKey, defaultOpenKeys = [], } = useMenuContext() - console.log('defaultOpenKeys', defaultOpenKeys) - console.log('keyValue', keyValue) const [menuOpen, setMenuOpen] = useState(defaultOpenKeys.indexOf(keyValue) !== -1) const curSubmenu = useRef(null) const popupSubMenu = useRef(null) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 54cdb638..3dad74d0 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -22,10 +22,7 @@ function BasicLayout({ menuSource, indexProps, }) { - console.log('menuSource', menuSource) - const { pathname } = location - console.log('location', location) const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) const [selectedKey, setSelectedKey] = useState('') @@ -34,7 +31,6 @@ function BasicLayout({ menuSource, menuOpenKeys }) - console.log('curOpenKeys', curOpenKeys) const defaultPath = (routeData.find(data => data.path === '/README') && routeData.find(data => data.path === '/README').mdconf && routeData.find(data => data.path === '/README').mdconf.abbrlink) || 'README' @@ -74,8 +70,6 @@ function BasicLayout({ {menus.map((item, index) => { const { mdconf, routePath } = item || {} const { abbrlink } = mdconf || {} - console.log('item', item) - // console.log('item', item) const path = abbrlink ? `/${abbrlink}` : routePath // item.path carrys .md here. return item.children && item.children.length > 0 ? ( @@ -141,8 +135,6 @@ function BasicLayout({ setSelectedKey(keyValue) }} defaultOpenKeys={curOpenKeys} - // todo: smart to fill defaultOpenKeys - // defaultOpenKeys={['/docs/主题']} > {renderSubMenuItem(menus || [])} diff --git a/packages/crd-seed/layout/utils.js b/packages/crd-seed/layout/utils.js index de29a128..57ede506 100644 --- a/packages/crd-seed/layout/utils.js +++ b/packages/crd-seed/layout/utils.js @@ -6,7 +6,6 @@ * } * output: ["/BasicSkill", "/BasicSkill/basis"] */ -// todo: optimize for depth-first traversal function getOpenSubMenuKeys({ pathname, menuSource, From 52462d825bae5fe3df36d2b5d1ef932db9678c63 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 24 Dec 2021 13:56:05 +0800 Subject: [PATCH 293/352] =?UTF-8?q?fix:=20code=20review=E3=80=81update=20c?= =?UTF-8?q?hangelog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/crd-seed/layout/utils.js | 18 +++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 97e2dc75..c35b135a 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.6.1 + +`2021-12-24` + +- **Fix** + + - 🐞 修复访问多层级子菜单目录对应的路由时,对应菜单未被展开的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/222)。 + ### 1.6.0 `2021-10-30` diff --git a/packages/crd-seed/layout/utils.js b/packages/crd-seed/layout/utils.js index 57ede506..40190fcd 100644 --- a/packages/crd-seed/layout/utils.js +++ b/packages/crd-seed/layout/utils.js @@ -1,10 +1,11 @@ /** * get keys of open sub menu from pathname * { - * pathname: /BasicSkill/basis/DOM, + * pathname: pathname of location, + * when pathname is /9f41fc98, the result is ['/docs/主题']. + * when pathname is /测试/测试路由, the result is ['/docs/测试'] * menuOpenKeys: means extra show open keys in config.yml * } - * output: ["/BasicSkill", "/BasicSkill/basis"] */ function getOpenSubMenuKeys({ pathname, @@ -18,19 +19,6 @@ function getOpenSubMenuKeys({ result ) - /** - * logic for not abbrLink - * there is no pick item if the length of pathnameSplit is less than or equal to 2. - * eg: /README => ["", "README"] - */ - // const pathnameSplit = pathname.split('/') - // if (pathnameSplit.length <= 2) return result - // let recordValue = '' - // for (let i = 1; i < pathnameSplit.length - 1; i++) { - // recordValue += `/${pathnameSplit[i]}` - // result.push(recordValue) - // } - /** default open menu from config.yml */ if (menuOpenKeys) { result.push(...menuOpenKeys.split(',')) From 0692ec721ffdeb21cd35077ee1a08b5553509584 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 27 Dec 2021 12:48:57 +0800 Subject: [PATCH 294/352] fix: menu init --- "docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" | 2 +- packages/crd-seed/layout/utils.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index c35b135a..dfae2fdb 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -8,7 +8,7 @@ abbrlink: 179nqpxt ### 1.6.1 -`2021-12-24` +`2021-12-27` - **Fix** diff --git a/packages/crd-seed/layout/utils.js b/packages/crd-seed/layout/utils.js index 40190fcd..05559801 100644 --- a/packages/crd-seed/layout/utils.js +++ b/packages/crd-seed/layout/utils.js @@ -13,6 +13,7 @@ function getOpenSubMenuKeys({ menuOpenKeys }) { const result = [] + console.log('menuSource', menuSource) getOpenSubMenuKeysForAbbrLink( menuSource, decodeURI(pathname), @@ -37,8 +38,8 @@ function getOpenSubMenuKeysForAbbrLink(source, pathname, result) { result.pop() } else { if ( - pathname.indexOf(mdconf.abbrlink) > -1 - || (pathname === source[i].routePath) + pathname.indexOf(mdconf.abbrlink) > -1 // used with abbrlink + || (pathname.indexOf(source[i].routePath) > -1) // used not with abbrlink ) { return true } From e419f0b2d6005dc5ba6e1b59f6ceb07fda6b7789 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 27 Dec 2021 12:57:00 +0800 Subject: [PATCH 295/352] fix: menu init --- packages/crd-seed/layout/utils.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/crd-seed/layout/utils.js b/packages/crd-seed/layout/utils.js index 05559801..3d66c544 100644 --- a/packages/crd-seed/layout/utils.js +++ b/packages/crd-seed/layout/utils.js @@ -13,7 +13,6 @@ function getOpenSubMenuKeys({ menuOpenKeys }) { const result = [] - console.log('menuSource', menuSource) getOpenSubMenuKeysForAbbrLink( menuSource, decodeURI(pathname), From 9fea4cccb41efba29c0446c79a158630e0a1192f Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 28 Dec 2021 13:11:42 +0800 Subject: [PATCH 296/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 29c7e7b2..9ede2e92 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.0", + "version": "1.6.1", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index bdf49041..2f8e7ee9 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.6.0", + "version": "1.6.1", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 9116de03d7c44d9187521864a54139521f638a26 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 31 Dec 2021 13:43:11 +0800 Subject: [PATCH 297/352] feat: support menu scroll into view --- packages/crd-seed/component/Menu/MenuItem.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/crd-seed/component/Menu/MenuItem.js b/packages/crd-seed/component/Menu/MenuItem.js index 826e886b..bef09ea2 100644 --- a/packages/crd-seed/component/Menu/MenuItem.js +++ b/packages/crd-seed/component/Menu/MenuItem.js @@ -1,3 +1,4 @@ +import { useEffect, useRef } from 'react' import cx from 'classnames' import { getMenuStyle } from './util' import { useMenuContext } from './context' @@ -10,6 +11,17 @@ function MenuItem({ level = 0, }) { const { theme, selectedKey, onSelect, onHoverKey } = useMenuContext() + const menuItemRef = useRef(null) + const menuItemselected = keyValue.indexOf(selectedKey) > -1 + + useEffect(() => { + if (menuItemselected) { + menuItemRef.scrollIntoView({ + block: 'center', + behavior: 'smooth' + }) + } + }, []) const handleOnClick = () => { onSelect(keyValue) @@ -19,7 +31,7 @@ function MenuItem({ return (
  • -1, + [styles['menu-item-selected']]: menuItemselected, })} onMouseEnter={() => { onHoverKey(keyValue) @@ -27,6 +39,7 @@ function MenuItem({ onMouseLeave={() => onHoverKey('')} onClick={handleOnClick} style={getMenuStyle(level, 'menuItem')} + ref={menuItemRef} > {icon ? {icon} : null} {title} From becec9f50452ac98fef154ead39b7660c4d162ad Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 2 Jan 2022 22:45:02 +0800 Subject: [PATCH 298/352] feat: update menu scrollIntoView --- packages/crd-seed/component/Menu/MenuItem.js | 23 ++++++++++++++------ packages/crd-seed/layout/index.js | 2 +- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/crd-seed/component/Menu/MenuItem.js b/packages/crd-seed/component/Menu/MenuItem.js index bef09ea2..25105ad8 100644 --- a/packages/crd-seed/component/Menu/MenuItem.js +++ b/packages/crd-seed/component/Menu/MenuItem.js @@ -10,18 +10,27 @@ function MenuItem({ keyValue = '', level = 0, }) { - const { theme, selectedKey, onSelect, onHoverKey } = useMenuContext() + const { + theme, + selectedKey, + onSelect, + onHoverKey, + inlineCollapsed + } = useMenuContext() const menuItemRef = useRef(null) const menuItemselected = keyValue.indexOf(selectedKey) > -1 + const menuUnFoldDelayTime = 300 useEffect(() => { - if (menuItemselected) { - menuItemRef.scrollIntoView({ - block: 'center', - behavior: 'smooth' - }) + if (menuItemselected && (inlineCollapsed === false)) { + setTimeout(() => { + menuItemRef.current.scrollIntoView({ + block: 'center', + behavior: 'smooth' + }) + }, menuUnFoldDelayTime) } - }, []) + }, [keyValue, selectedKey, inlineCollapsed]) const handleOnClick = () => { onSelect(keyValue) diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 3dad74d0..9088351b 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -24,7 +24,7 @@ function BasicLayout({ }) { const { pathname } = location const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} - const [inlineCollapsed, setInlineCollapsed] = useState(isMobile) + const [inlineCollapsed, setInlineCollapsed] = useState(true) const [selectedKey, setSelectedKey] = useState('') const curOpenKeys = getOpenSubMenuKeys({ pathname, From 54a0d7ad70a624e4b92904e3832b9ea7635518ad Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 2 Jan 2022 23:03:04 +0800 Subject: [PATCH 299/352] docs: update Changelog --- ...46\233\264\346\226\260\346\227\245\345\277\227.md" | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index dfae2fdb..ba6241d3 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,17 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.7.0 + +`2022-01-02` + +- **Feature** + + - 🚀 访问内容页路由时,收起菜单侧边栏以提高首屏加载体验。[issue](https://github.com/MuYunyun/create-react-doc/issues/219) + - 优势一: 用户可以聚焦访问内容区,提升阅读体验。 + - 优势二: 菜单区域渲染内容复杂,隐藏其加载过程,提升首屏体验。 + - 🚀 菜单侧边栏展开后,选中项自动滚动到视口内。 + ### 1.6.1 `2021-12-27` From 7fbe6a615d733a667f50af28b0ed36768f1e33fb Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 2 Jan 2022 23:04:26 +0800 Subject: [PATCH 300/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 9ede2e92..5eb1ef2e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.6.1", + "version": "1.7.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 2f8e7ee9..17dbf252 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.6.1", + "version": "1.7.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From 107ce3c6f111cf7f61182554ee099ccd220f9ca7 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 13 Jan 2022 18:52:13 +0800 Subject: [PATCH 301/352] feat: combile SSR in prerender to prevent shake problem --- packages/crd-client-utils/.npmrc | 10 +++ packages/crd-client-utils/README.md | 3 + .../utils => crd-client-utils}/index.js | 8 ++- packages/crd-client-utils/package.json | 19 +++++ packages/crd-scripts/src/web/Router.js | 6 +- packages/crd-scripts/src/web/index.js | 23 ++++-- packages/crd-seed/component/Affix/affix.js | 12 ++-- packages/crd-seed/component/Menu/SubMenu.js | 6 +- .../crd-seed/component/Menu/transition.js | 6 +- packages/crd-seed/layout/index.js | 70 +++++++++++++------ packages/crd-seed/layout/index.less | 1 + packages/crd-seed/utils/index.js | 6 +- packages/crd-theme/index.js | 6 +- packages/crd-theme/markdown/index.js | 42 +++++++---- packages/crd-theme/routes/Pages/index.js | 3 - 15 files changed, 160 insertions(+), 61 deletions(-) create mode 100644 packages/crd-client-utils/.npmrc create mode 100644 packages/crd-client-utils/README.md rename packages/{crd-theme/utils => crd-client-utils}/index.js (62%) create mode 100644 packages/crd-client-utils/package.json delete mode 100644 packages/crd-theme/routes/Pages/index.js diff --git a/packages/crd-client-utils/.npmrc b/packages/crd-client-utils/.npmrc new file mode 100644 index 00000000..7edb6af8 --- /dev/null +++ b/packages/crd-client-utils/.npmrc @@ -0,0 +1,10 @@ +# .npmrc + +registry=https://registry.npmjs.org/ + +# https://github.com/sass/node-sass#binary-configuration-parameters +sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ + +# https://github.com/Medium/phantomjs#deciding-where-to-get-phantomjs +# phantomjs_cdnurl=http://cnpmjs.org/downloads +phantomjs_cdnurl=https://npm.taobao.org/dist/phantomjs diff --git a/packages/crd-client-utils/README.md b/packages/crd-client-utils/README.md new file mode 100644 index 00000000..9a533715 --- /dev/null +++ b/packages/crd-client-utils/README.md @@ -0,0 +1,3 @@ +### crd-client-utils + +[create-react-doc](https://github.com/MuYunyun/create-react-doc) 的工具包。 \ No newline at end of file diff --git a/packages/crd-theme/utils/index.js b/packages/crd-client-utils/index.js similarity index 62% rename from packages/crd-theme/utils/index.js rename to packages/crd-client-utils/index.js index 3c491ae1..fa7d9bca 100644 --- a/packages/crd-theme/utils/index.js +++ b/packages/crd-client-utils/index.js @@ -1,5 +1,9 @@ -// eslint-disable-next-line no-undef +const ifDev = env === 'dev' const ifProd = env === 'prod' const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.prerender -export { ifProd, ifPrerender } +export { + ifDev, + ifProd, + ifPrerender +} diff --git a/packages/crd-client-utils/package.json b/packages/crd-client-utils/package.json new file mode 100644 index 00000000..08a46763 --- /dev/null +++ b/packages/crd-client-utils/package.json @@ -0,0 +1,19 @@ +{ + "name": "crd-client-utils", + "version": "1.5.0", + "description": "Utils with create react doc", + "main": "index.js", + "dependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/MuYunyun/create-react-doc", + "directory": "packages/utils" + }, + "keywords": [], + "publishConfig": { + "access": "public" + }, + "author": "muyunyun", + "license": "MIT", + "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" +} diff --git a/packages/crd-scripts/src/web/Router.js b/packages/crd-scripts/src/web/Router.js index 8f15144b..c9fdf932 100644 --- a/packages/crd-scripts/src/web/Router.js +++ b/packages/crd-scripts/src/web/Router.js @@ -65,10 +65,12 @@ const RoutersContainer = withRouter(({ ...props }) => { ) }) -export default function RouterRoot() { +export default function RouterRoot({ + pointRender +}) { return ( - + ) } diff --git a/packages/crd-scripts/src/web/index.js b/packages/crd-scripts/src/web/index.js index b0d1a65a..8ff54e00 100644 --- a/packages/crd-scripts/src/web/index.js +++ b/packages/crd-scripts/src/web/index.js @@ -1,8 +1,23 @@ import ReactDOM from 'react-dom' +import ReactDOMServer from 'react-dom/server' import '@babel/polyfill' +import { ifDev, ifPrerender } from 'crd-client-utils' import RouterRoot from './Router' -ReactDOM.render( - , - document.getElementById('root'), -) +if (ifDev) { + // dev render + document.getElementById('root').innerHTML = ReactDOMServer.renderToString() + ReactDOM.hydrate( + , + document.getElementById('root'), + ) +} else if (ifPrerender) { + // prerender + document.getElementById('root').innerHTML = ReactDOMServer.renderToString() +} else { + // prod render: + ReactDOM.hydrate( + , + document.getElementById('root'), + ) +} diff --git a/packages/crd-seed/component/Affix/affix.js b/packages/crd-seed/component/Affix/affix.js index ca2ee57d..abdbc0d3 100644 --- a/packages/crd-seed/component/Affix/affix.js +++ b/packages/crd-seed/component/Affix/affix.js @@ -1,4 +1,5 @@ -import { useState, useLayoutEffect, useRef } from 'react' +// import { useState, useLayoutEffect, useRef } from 'react' +import { useState, useEffect, useRef } from 'react' import { throttle } from './utils' const Affix = ({ @@ -22,7 +23,8 @@ const Affix = ({ // 是否是绝对布局模式 const fixedRef = useRef(false) const [fixed, setFixed] = useState(fixedRef.current) - useLayoutEffect(() => { + // useLayoutEffect(() => { + useEffect(() => { widthRef.current = width }, [width]) const validValue = (value) => { @@ -98,12 +100,14 @@ const Affix = ({ const scroll = throttle(handleScroll, 20) - useLayoutEffect(() => { + // useLayoutEffect(() => { + useEffect(() => { // 在子节点移开父节点后保持原来占位 setWrapperDimension() }, [fixed, width]) - useLayoutEffect(() => { + // useLayoutEffect(() => { + useEffect(() => { if (target) scrollElm = target() scrollElm.addEventListener('scroll', scroll) return () => { diff --git a/packages/crd-seed/component/Menu/SubMenu.js b/packages/crd-seed/component/Menu/SubMenu.js index 8c93a7bb..b6400a3e 100644 --- a/packages/crd-seed/component/Menu/SubMenu.js +++ b/packages/crd-seed/component/Menu/SubMenu.js @@ -1,4 +1,5 @@ -import { useState, useRef, useLayoutEffect, Fragment, Children, cloneElement } from 'react' +// import { useState, useRef, useLayoutEffect, Fragment, Children, cloneElement } from 'react' +import { useState, useRef, useEffect, Fragment, Children, cloneElement } from 'react' import cx from 'classnames' import Transition from './transition' import { getMenuStyle } from './util' @@ -42,7 +43,8 @@ function SubMenu({ const gapDistance = 4 /** 使用 useLayoutEffect 可以避免 useEffect 产生可见的位移痕迹 */ - useLayoutEffect(() => { + // useLayoutEffect(() => { + useEffect(() => { if (popupSubMenu.current && curSubmenu.current) { popupSubMenu.current.style.left = `${curSubmenu.current.getBoundingClientRect().right + gapDistance}px` diff --git a/packages/crd-seed/component/Menu/transition.js b/packages/crd-seed/component/Menu/transition.js index b25b1e97..5692c677 100644 --- a/packages/crd-seed/component/Menu/transition.js +++ b/packages/crd-seed/component/Menu/transition.js @@ -1,4 +1,5 @@ -import { useLayoutEffect, useRef, useCallback } from 'react' +// import { useLayoutEffect, useRef, useCallback } from 'react' +import { useEffect, useRef, useCallback } from 'react' import styles from './style/index.less' const ANIMATION_DURATION = 200 @@ -74,7 +75,8 @@ export default function Transition({ [beforeLeave, enter, leave] ) - useLayoutEffect(() => { + // useLayoutEffect(() => { + useEffect(() => { if (!mounted.current) { mounted.current = true beforeEnter() diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 9088351b..83aa0a61 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -1,13 +1,14 @@ import * as React from 'react' import { Switch, Link, Route, Redirect } from 'react-router-dom' import cx from 'classnames' +import { ifDev, ifProd, ifPrerender } from 'crd-client-utils' import Menu from '../component/Menu' import Icon from '../component/Icon' import Affix from '../component/Affix' import Header from '../component/Header' import Footer from '../component/Footer' import languageMap from '../language' -import { isMobile, ifAddPrefix, ifProd, ifPrerender } from '../utils' +import { isMobile, ifAddPrefix } from '../utils' import { getOpenSubMenuKeys } from './utils' import logo from '../crd.logo.svg' import styles from './index.less' @@ -21,11 +22,15 @@ function BasicLayout({ routeData, menuSource, indexProps, + // render area + pointRender }) { const { pathname } = location const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} const [inlineCollapsed, setInlineCollapsed] = useState(true) const [selectedKey, setSelectedKey] = useState('') + const [monted, setMounted] = useState(false) + const [routeChanged, setRoutedChanged] = useState(false) const curOpenKeys = getOpenSubMenuKeys({ pathname, menuSource, @@ -59,6 +64,17 @@ function BasicLayout({ setSelectedKey(newPathName || defaultPath) }, location.pathname) + useEffect(() => { + setMounted(true) + }, []) + + useEffect(() => { + const { pathname } = location + if (monted) { + setRoutedChanged(true) + } + }, location.pathname) + const scrollToTop = () => { document.body.scrollTop = 0 document.documentElement.scrollTop = 0 @@ -229,6 +245,7 @@ function BasicLayout({ ) } + // Target: The first screen not to do renderContent logic. The second screen do. const renderContent = () => { return (
    ) } + + console.log('routeChanged', routeChanged) return ( -
    -
    -
    - {renderPageHeader()} - {renderMenuContainer()} - {renderContent()} -
    -
    -
    + <> + { + // pointRender === 'menu' && !routeChanged + // prod render + // ? renderMenuContainer() + // pre & dev render + // :
    +
    +
    +
    + {renderPageHeader()} + {/* */} + {renderContent()} +
    +
    +
    + } + ) } diff --git a/packages/crd-seed/layout/index.less b/packages/crd-seed/layout/index.less index aa29da73..9f4a67d2 100644 --- a/packages/crd-seed/layout/index.less +++ b/packages/crd-seed/layout/index.less @@ -89,6 +89,7 @@ .affixWrapper { border-right: 1px solid rgb(233, 233, 233); transition: width .2s linear; + width: 0px; } } diff --git a/packages/crd-seed/utils/index.js b/packages/crd-seed/utils/index.js index 7fd00b90..2ae16251 100644 --- a/packages/crd-seed/utils/index.js +++ b/packages/crd-seed/utils/index.js @@ -1,12 +1,10 @@ import isClient from 'diana/lib/isClient' +import { ifProd, ifPrerender } from 'crd-client-utils' /** judge if is in mobile */ const isMobile = isClient() ? 'ontouchend' in window : false -// eslint-disable-next-line no-undef -const ifProd = env === 'prod' -const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.prerender // decide to if add prefix for path, eg: '/' or '/${repo}' const ifAddPrefix = ifProd && !ifPrerender -export { isMobile, ifPrerender, ifAddPrefix, ifProd } +export { isMobile, ifAddPrefix } diff --git a/packages/crd-theme/index.js b/packages/crd-theme/index.js index feb9ba25..ab3fa717 100644 --- a/packages/crd-theme/index.js +++ b/packages/crd-theme/index.js @@ -1,11 +1,7 @@ -// import Loading from './component/Loading' -import Markdown from './routes/Pages' -// import { ifProd, ifPrerender } from './utils' +import Markdown from './markdown' import './index.less' export default function (Lazyload, props) { - /** todo: how to avoid the extra logic */ - // if (ifProd && !ifPrerender) return null // const LoadableComponent = Lazyload({ // component: () => import('./routes/Pages'), // LoadingComponent: Loading, diff --git a/packages/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js index 3129fc0c..5ff2e067 100644 --- a/packages/crd-theme/markdown/index.js +++ b/packages/crd-theme/markdown/index.js @@ -7,6 +7,7 @@ import Link from './Link' import Loading from '../component/Loading' import styles from './style/index.less' +// const { useState, useLayoutEffect, useRef } = React const { useState, useEffect, useRef } = React const components = { @@ -17,7 +18,17 @@ const components = { function Markdown(markdownProps) { const { props } = markdownProps const { relative, name } = props - const [MarkdownCP, setMarkdownCP] = useState(null) + + const getInitMarkdownCP = () => { + const relativeMd = relative + if (!relativeMd) return null + + const rmFirstSlash = relative.slice(1, relative.length - 3) + return () => require(`__project_root__/${rmFirstSlash}.md`).default + } + getInitMarkdownCP() + + const [MarkdownCP, setMarkdownCP] = useState(getInitMarkdownCP()) const markdownWrapperRef = useRef(null) const renderMarkdown = () => { @@ -32,6 +43,7 @@ function Markdown(markdownProps) { }) } + // useLayoutEffect(() => { useEffect(() => { renderMarkdown() }, []) @@ -46,18 +58,22 @@ function Markdown(markdownProps) { {getName()} -
    - { - MarkdownCP - ? - - - - : - } -
    + { + MarkdownCP + ?
    + { + // MarkdownCP + // ? + + + + // : + } +
    + : null + } ) } diff --git a/packages/crd-theme/routes/Pages/index.js b/packages/crd-theme/routes/Pages/index.js deleted file mode 100644 index 3a52aecc..00000000 --- a/packages/crd-theme/routes/Pages/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Markdown from '../../markdown' - -export default Markdown From 70209473cfb29e41fc4b43a61e1aaf531ed8bd42 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 14 Jan 2022 01:49:38 +0800 Subject: [PATCH 302/352] feat: code review & changelog --- ...64\346\226\260\346\227\245\345\277\227.md" | 9 +++ packages/crd-client-utils/index.js | 9 ++- packages/crd-scripts/src/web/Router.js | 6 +- packages/crd-seed/component/Affix/affix.js | 35 +++++----- packages/crd-seed/component/Menu/SubMenu.js | 9 ++- .../crd-seed/component/Menu/transition.js | 3 - packages/crd-seed/layout/index.js | 66 ++++++------------- packages/crd-theme/index.js | 6 -- packages/crd-theme/markdown/index.js | 42 ++++++------ 9 files changed, 77 insertions(+), 108 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index ba6241d3..3f0fb9e7 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,15 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.8.0 + +`2022-01-15` + +- **Feature** + + - 🚀 支持 SSR 首屏直出方案(基于 gp-pages 服务)以避免预渲染带来的二次刷新产生页面抖动的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/103) + - 🚀 新增 crd-client-utils 包以收录公用方法。 + ### 1.7.0 `2022-01-02` diff --git a/packages/crd-client-utils/index.js b/packages/crd-client-utils/index.js index fa7d9bca..b8843f05 100644 --- a/packages/crd-client-utils/index.js +++ b/packages/crd-client-utils/index.js @@ -1,9 +1,16 @@ +import { useLayoutEffect, useEffect } from 'react' + const ifDev = env === 'dev' const ifProd = env === 'prod' const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.prerender +const useEnhancedEffect = typeof window !== 'undefined' + ? useLayoutEffect + : useEffect + export { ifDev, ifProd, - ifPrerender + ifPrerender, + useEnhancedEffect } diff --git a/packages/crd-scripts/src/web/Router.js b/packages/crd-scripts/src/web/Router.js index c9fdf932..8f15144b 100644 --- a/packages/crd-scripts/src/web/Router.js +++ b/packages/crd-scripts/src/web/Router.js @@ -65,12 +65,10 @@ const RoutersContainer = withRouter(({ ...props }) => { ) }) -export default function RouterRoot({ - pointRender -}) { +export default function RouterRoot() { return ( - + ) } diff --git a/packages/crd-seed/component/Affix/affix.js b/packages/crd-seed/component/Affix/affix.js index abdbc0d3..d2bf4965 100644 --- a/packages/crd-seed/component/Affix/affix.js +++ b/packages/crd-seed/component/Affix/affix.js @@ -1,4 +1,3 @@ -// import { useState, useLayoutEffect, useRef } from 'react' import { useState, useEffect, useRef } from 'react' import { throttle } from './utils' @@ -23,15 +22,29 @@ const Affix = ({ // 是否是绝对布局模式 const fixedRef = useRef(false) const [fixed, setFixed] = useState(fixedRef.current) - // useLayoutEffect(() => { + useEffect(() => { widthRef.current = width }, [width]) + + useEffect(() => { + // 在子节点移开父节点后保持原来占位 + setWrapperDimension() + }, [fixed, width]) + + useEffect(() => { + if (target) scrollElm = target() + scrollElm.addEventListener('scroll', scroll) + return () => { + if (target) scrollElm = target() + scrollElm.removeEventListener('scroll', scroll) + } + }, [offsetTop, offsetBottom]) + const validValue = (value) => { return typeof value === 'number' } const setWrapperDimension = () => { - // eslint-disable-next-line no-shadow const { width: wrapperRefWidth, height: wrapperRefHeight } = wrapperRef.current ? wrapperRef.current.getBoundingClientRect() : {} @@ -100,22 +113,6 @@ const Affix = ({ const scroll = throttle(handleScroll, 20) - // useLayoutEffect(() => { - useEffect(() => { - // 在子节点移开父节点后保持原来占位 - setWrapperDimension() - }, [fixed, width]) - - // useLayoutEffect(() => { - useEffect(() => { - if (target) scrollElm = target() - scrollElm.addEventListener('scroll', scroll) - return () => { - if (target) scrollElm = target() - scrollElm.removeEventListener('scroll', scroll) - } - }, [offsetTop, offsetBottom]) - return (
    { - useEffect(() => { + + useEnhancedEffect(() => { if (popupSubMenu.current && curSubmenu.current) { popupSubMenu.current.style.left = `${curSubmenu.current.getBoundingClientRect().right + gapDistance}px` diff --git a/packages/crd-seed/component/Menu/transition.js b/packages/crd-seed/component/Menu/transition.js index 5692c677..71f4546d 100644 --- a/packages/crd-seed/component/Menu/transition.js +++ b/packages/crd-seed/component/Menu/transition.js @@ -1,4 +1,3 @@ -// import { useLayoutEffect, useRef, useCallback } from 'react' import { useEffect, useRef, useCallback } from 'react' import styles from './style/index.less' @@ -60,7 +59,6 @@ export default function Transition({ }, [afterLeave]) const triggerChange = useCallback( - // eslint-disable-next-line no-shadow (isShow) => { clearTimeout(timer.current.enterTimer) clearTimeout(timer.current.leaveTimer) @@ -75,7 +73,6 @@ export default function Transition({ [beforeLeave, enter, leave] ) - // useLayoutEffect(() => { useEffect(() => { if (!mounted.current) { mounted.current = true diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 83aa0a61..30bd46c1 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -22,15 +22,11 @@ function BasicLayout({ routeData, menuSource, indexProps, - // render area - pointRender }) { const { pathname } = location const { user, repo, branch = 'main', language = 'en', menuOpenKeys } = DOCSCONFIG || {} const [inlineCollapsed, setInlineCollapsed] = useState(true) const [selectedKey, setSelectedKey] = useState('') - const [monted, setMounted] = useState(false) - const [routeChanged, setRoutedChanged] = useState(false) const curOpenKeys = getOpenSubMenuKeys({ pathname, menuSource, @@ -64,17 +60,6 @@ function BasicLayout({ setSelectedKey(newPathName || defaultPath) }, location.pathname) - useEffect(() => { - setMounted(true) - }, []) - - useEffect(() => { - const { pathname } = location - if (monted) { - setRoutedChanged(true) - } - }, location.pathname) - const scrollToTop = () => { document.body.scrollTop = 0 document.documentElement.scrollTop = 0 @@ -245,7 +230,6 @@ function BasicLayout({ ) } - // Target: The first screen not to do renderContent logic. The second screen do. const renderContent = () => { return (
    - { - // pointRender === 'menu' && !routeChanged - // prod render - // ? renderMenuContainer() - // pre & dev render - // :
    -
    -
    -
    - {renderPageHeader()} - {/* */} - {renderContent()} -
    -
    -
    - } - +
    +
    +
    + {renderPageHeader()} + {renderMenuContainer()} + {renderContent()} +
    +
    +
    ) } diff --git a/packages/crd-theme/index.js b/packages/crd-theme/index.js index ab3fa717..bde22acf 100644 --- a/packages/crd-theme/index.js +++ b/packages/crd-theme/index.js @@ -2,15 +2,9 @@ import Markdown from './markdown' import './index.less' export default function (Lazyload, props) { - // const LoadableComponent = Lazyload({ - // component: () => import('./routes/Pages'), - // LoadingComponent: Loading, - // }) - // routing load component if (props.routeData && props.routeData.length > 0) { props.routeData.map((item) => { - // item.component = LoadableComponent item.component = Markdown return item }) diff --git a/packages/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js index 5ff2e067..e64fc0e8 100644 --- a/packages/crd-theme/markdown/index.js +++ b/packages/crd-theme/markdown/index.js @@ -4,10 +4,8 @@ import { MDXProvider } from '@mdx-js/react' import { Helmet } from 'react-helmet' import CodeBlock from './codeBlock' import Link from './Link' -import Loading from '../component/Loading' import styles from './style/index.less' -// const { useState, useLayoutEffect, useRef } = React const { useState, useEffect, useRef } = React const components = { @@ -19,31 +17,31 @@ function Markdown(markdownProps) { const { props } = markdownProps const { relative, name } = props - const getInitMarkdownCP = () => { + const getRmFirstSlashMarkdownName = () => { const relativeMd = relative if (!relativeMd) return null + return relative.slice(1, relative.length - 3) + } - const rmFirstSlash = relative.slice(1, relative.length - 3) - return () => require(`__project_root__/${rmFirstSlash}.md`).default + const getInitMarkdownCP = () => { + const markdownName = getRmFirstSlashMarkdownName() + if (!markdownName) return + return () => require(`__project_root__/${markdownName}.md`).default } - getInitMarkdownCP() const [MarkdownCP, setMarkdownCP] = useState(getInitMarkdownCP()) const markdownWrapperRef = useRef(null) const renderMarkdown = () => { - const relativeMd = relative - if (!relativeMd) return null - - const rmFirstSlash = relative.slice(1, relative.length - 3) + const markdownName = getRmFirstSlashMarkdownName() + if (!markdownName) return // it must be writen with / & .md in dynamic import - import(`__project_root__/${rmFirstSlash}.md`).then((data) => { + import(`__project_root__/${markdownName}.md`).then((data) => { // data.default is a function, so we should write () => data.default in setState here. setMarkdownCP(() => (data.default || data)) }) } - // useLayoutEffect(() => { useEffect(() => { renderMarkdown() }, []) @@ -60,17 +58,15 @@ function Markdown(markdownProps) { { MarkdownCP - ?
    - { - // MarkdownCP - // ? - - - - // : - } + ?
    + + +
    : null } From 5fbd068689f06190ef1393b567fd7a442bc53fa3 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 16 Jan 2022 19:33:27 +0800 Subject: [PATCH 303/352] docs: update README --- README.md | 14 +++++--------- ...233\264\346\226\260\346\227\245\345\277\227.md" | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0492c293..e9f4dbaf 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,9 @@ abbrlink: s31w9gd1 * 建站理念: `文件即站点` (Files as a Site)。 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 -* 性能: 通过`预渲染`、`懒加载`大幅提升站点加载速度。 +* 流畅的用户体验: 内置 SSR 首屏直出方案(基于 gp-pages 服务),以提升用户体验。 * 基于 mdx: 支持在 markdown 中`书写 React 组件`、数学公式等。 -* 搜索引擎优化: - * 支持 SEO, 让文档更易被搜索。 - * 支持短链,以让链接持久化。 +* 搜索引擎优化: 支持 SEO, 让文档更易被搜索。 * 个性化: 支持[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 @@ -49,12 +47,10 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * 文档支持内嵌 codepen、codesandbox。 * GitHub 联动。 -使用该主题搭建的项目有: +[笔者博客](http://muyunyun.cn/blog) 就是使用默认主题搭建的。 -* [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) - * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) - * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) -* [diana](https://github.com/MuYunyun/diana) +![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) +![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) 如果您想定制化或者分享个人主题, 可以参考[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 3f0fb9e7..864c15e0 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -8,7 +8,7 @@ abbrlink: 179nqpxt ### 1.8.0 -`2022-01-15` +`2022-01-16` - **Feature** From 2f99e45a0972463b73594c227c667eff6af298e4 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 16 Jan 2022 19:35:07 +0800 Subject: [PATCH 304/352] chore: publish --- lerna.json | 2 +- packages/crd-client-utils/package.json | 3 +-- packages/crd-scripts/package.json | 4 ++-- packages/crd-seed/package.json | 2 +- packages/crd-theme/package.json | 2 +- packages/create-react-doc/package.json | 6 +++--- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/lerna.json b/lerna.json index 5eb1ef2e..a511e3bc 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.7.0", + "version": "1.8.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-client-utils/package.json b/packages/crd-client-utils/package.json index 08a46763..24b95382 100644 --- a/packages/crd-client-utils/package.json +++ b/packages/crd-client-utils/package.json @@ -1,9 +1,8 @@ { "name": "crd-client-utils", - "version": "1.5.0", + "version": "1.8.0", "description": "Utils with create react doc", "main": "index.js", - "dependencies": {}, "repository": { "type": "git", "url": "https://github.com/MuYunyun/create-react-doc", diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 3321f673..c03ccf51 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.6.0", + "version": "1.8.0", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -25,7 +25,7 @@ "copy-template-dir": "^1.3.0", "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", - "crd-theme": "^1.6.0", + "crd-theme": "^1.8.0", "crd-utils": "^1.5.0", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 17dbf252..696bd6ef 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.7.0", + "version": "1.8.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json index 96cb408d..1795adf6 100644 --- a/packages/crd-theme/package.json +++ b/packages/crd-theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.6.0", + "version": "1.8.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 6892fbe3..d13c43a6 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.6.0", + "version": "1.8.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.6.0", + "crd-scripts": "^1.8.0", "crd-templates": "^1.5.0", - "crd-theme": "^1.6.0", + "crd-theme": "^1.8.0", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" From 40bde6f95f17f49443e30ef6c63219010553ecc8 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 17 Jan 2022 00:17:18 +0800 Subject: [PATCH 305/352] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20crd-scripts?= =?UTF-8?q?=E3=80=81crd-seed=20=E9=81=97=E6=BC=8F=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E5=AE=89=E8=A3=85=20crd-client-utils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/crd-scripts/package.json | 1 + packages/crd-seed/package.json | 1 + 3 files changed, 10 insertions(+) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 864c15e0..c951f5b6 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.8.1 + +`2022-01-17` + +- **Fix** + + - 🐞 修复 crd-scripts、crd-seed 遗漏指定安装 crd-client-utils 的问题。 + ### 1.8.0 `2022-01-16` diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index c03ccf51..478617e2 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -23,6 +23,7 @@ "colors-cli": "^1.0.13", "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", + "crd-client-utils": "^1.8.0", "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", "crd-theme": "^1.8.0", diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 696bd6ef..ba90a8a5 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -4,6 +4,7 @@ "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { + "crd-client-utils": "^1.8.0", "react-router-dom": "^4.2.2", "react-switch": "^5.0.1" }, From 79a910b6d1abd374ae4f701d09c1d25d587c1fca Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 17 Jan 2022 00:21:25 +0800 Subject: [PATCH 306/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 2 +- packages/crd-seed/package.json | 2 +- packages/create-react-doc/package.json | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lerna.json b/lerna.json index a511e3bc..f26c1d83 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.8.0", + "version": "1.8.1", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 478617e2..60813ee3 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.8.0", + "version": "1.8.1", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index ba90a8a5..a292259a 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.8.0", + "version": "1.8.1", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index d13c43a6..b1998ea3 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.8.0", + "version": "1.8.1", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.8.0", + "crd-scripts": "^1.8.1", "crd-templates": "^1.5.0", "crd-theme": "^1.8.0", "fs-extra": "^5.0.0" From 2d6b51a0140ecbd4fd49ea43ef232a162e12a671 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 2 Feb 2022 20:24:12 +0800 Subject: [PATCH 307/352] chore: update env --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/crd-client-utils/index.js | 4 +++- packages/crd-scripts/src/conf/webpack.config.dev.js | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index c951f5b6..1937a8e4 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.8.2 + +`2022-02-02` + +- **Enhancement** + + - 🎈 支持在本地环境调试项目源代码。[mr](https://github.com/MuYunyun/create-react-doc/pull/249) + ### 1.8.1 `2022-01-17` diff --git a/packages/crd-client-utils/index.js b/packages/crd-client-utils/index.js index b8843f05..c6fd5591 100644 --- a/packages/crd-client-utils/index.js +++ b/packages/crd-client-utils/index.js @@ -4,7 +4,9 @@ const ifDev = env === 'dev' const ifProd = env === 'prod' const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.prerender -const useEnhancedEffect = typeof window !== 'undefined' +// Not only Prod env but also [some part of Dev env](https://github.com/MuYunyun/create-react-doc/blob/main/packages/crd-scripts/src/web/index.js#L10-L13) +// need using useLayoutEffect. If meeting this case in the future, thinking about passing extra tag from . +const useEnhancedEffect = ifProd ? useLayoutEffect : useEffect diff --git a/packages/crd-scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js index 227108fd..50420478 100644 --- a/packages/crd-scripts/src/conf/webpack.config.dev.js +++ b/packages/crd-scripts/src/conf/webpack.config.dev.js @@ -12,6 +12,7 @@ const paths = require('./path') module.exports = function (cmd) { const docsConfig = getDocsConfig() config.mode = 'development' + config.devtool = 'eval-source-map' config.entry = [ require.resolve('react-hot-loader/patch'), require.resolve('webpack-hot-dev-clients/webpackHotDevClient'), From 328ede57d322c94ffab3a5781448cb364e8129cd Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 2 Feb 2022 20:30:45 +0800 Subject: [PATCH 308/352] chore: publish --- lerna.json | 2 +- packages/crd-client-utils/package.json | 2 +- packages/crd-scripts/package.json | 4 ++-- packages/crd-seed/package.json | 4 ++-- packages/create-react-doc/package.json | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lerna.json b/lerna.json index f26c1d83..afcf368e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.8.1", + "version": "1.8.2", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-client-utils/package.json b/packages/crd-client-utils/package.json index 24b95382..9542d2a0 100644 --- a/packages/crd-client-utils/package.json +++ b/packages/crd-client-utils/package.json @@ -1,6 +1,6 @@ { "name": "crd-client-utils", - "version": "1.8.0", + "version": "1.8.2", "description": "Utils with create react doc", "main": "index.js", "repository": { diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 60813ee3..f4725cb3 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.8.1", + "version": "1.8.2", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -23,7 +23,7 @@ "colors-cli": "^1.0.13", "copy-markdown-image-webpack-plugin": "^2.0.0", "copy-template-dir": "^1.3.0", - "crd-client-utils": "^1.8.0", + "crd-client-utils": "^1.8.2", "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", "crd-theme": "^1.8.0", diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index a292259a..52490f16 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,10 +1,10 @@ { "name": "crd-seed", - "version": "1.8.1", + "version": "1.8.2", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { - "crd-client-utils": "^1.8.0", + "crd-client-utils": "^1.8.2", "react-router-dom": "^4.2.2", "react-switch": "^5.0.1" }, diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index b1998ea3..78316ecc 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.8.1", + "version": "1.8.2", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.8.1", + "crd-scripts": "^1.8.2", "crd-templates": "^1.5.0", "crd-theme": "^1.8.0", "fs-extra": "^5.0.0" From 6c9744c45bb0e05edeeaff4e1011bb645f3d27f6 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 21 Mar 2022 19:00:50 +0800 Subject: [PATCH 309/352] feat: support custom tags --- .../\346\265\213\350\257\225\346\240\207\347\255\276.md" | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 "docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" diff --git "a/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" "b/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" new file mode 100644 index 00000000..de92d017 --- /dev/null +++ "b/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" @@ -0,0 +1,6 @@ + + +该页面用来测试自定义标签。 From dd3d726a588df189ca19d778b87d4a844812f6c0 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 22 Mar 2022 19:02:22 +0800 Subject: [PATCH 310/352] feat: remove extra logic --- packages/crd-seed/component/Header/index.js | 2 +- packages/crd-seed/component/Header/index.less | 4 +-- packages/crd-seed/component/NoMatch/index.js | 4 +-- packages/crd-seed/component/Tags/index.js | 30 +++++++++++++++++++ packages/crd-seed/component/Tags/index.less | 28 +++++++++++++++++ packages/crd-seed/index.js | 5 ++++ packages/crd-seed/layout/index.js | 8 ++--- 7 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 packages/crd-seed/component/Tags/index.js create mode 100644 packages/crd-seed/component/Tags/index.less diff --git a/packages/crd-seed/component/Header/index.js b/packages/crd-seed/component/Header/index.js index f7761853..3a1e51d9 100644 --- a/packages/crd-seed/component/Header/index.js +++ b/packages/crd-seed/component/Header/index.js @@ -65,7 +65,7 @@ const Header = ({ } /> -
    + ) +} + +export default Tags diff --git a/packages/crd-seed/component/Tags/index.less b/packages/crd-seed/component/Tags/index.less new file mode 100644 index 00000000..4e0ffefe --- /dev/null +++ b/packages/crd-seed/component/Tags/index.less @@ -0,0 +1,28 @@ +.tags { + width: 100%; + padding: 0 20px; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + + &-title { + font-family: Palatino, Garamond, Times, Georgia, serif; + font-size: 24px; + font-weight: 400; + margin: initial; + text-align: center; + overflow-wrap: break-word; + word-wrap: break-word; + } + + &-content { + width: 100%; + } + + &-text { + color: #6f6f6f; + padding: 10px; + } +} \ No newline at end of file diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 9979f7c1..26733039 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -1,6 +1,7 @@ import { Switch, Route } from 'react-router-dom' import BasicLayout from './layout' import NoMatch from './component/NoMatch' +import Tags from './component/Tags' import './index.less' // run in the Web/Router.js @@ -11,6 +12,10 @@ const ThemeSeed = (props) => { path="/404" render={routeProps => } /> + } + /> { diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 30bd46c1..be25e2e3 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -267,10 +267,10 @@ function BasicLayout({
    Date: Thu, 24 Mar 2022 13:57:05 +0800 Subject: [PATCH 311/352] feat: update tags --- packages/crd-seed/component/Tags/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js index 4a23dc6f..838b0749 100644 --- a/packages/crd-seed/component/Tags/index.js +++ b/packages/crd-seed/component/Tags/index.js @@ -1,6 +1,6 @@ import styles from './index.less' -const Tags = () => { +const Tags = ({}) => { const { user, repo } = DOCSCONFIG || {} return (
    From 9a70701569effde2cc6714c349199f1e7f06ab5e Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 25 Mar 2022 13:50:27 +0800 Subject: [PATCH 312/352] feat: collect tags --- ...13\350\257\225\346\240\207\347\255\276.md" | 2 +- .../src/conf/getPrerenderRoutes.js | 38 ++++++++++++++----- .../src/conf/node-directory-tree.js | 11 +++++- .../src/conf/webpack.config.dev.js | 4 ++ .../src/conf/webpack.config.prod.js | 3 +- packages/crd-seed/component/Tags/index.js | 3 ++ 6 files changed, 48 insertions(+), 13 deletions(-) diff --git "a/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" "b/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" index de92d017..6ff4117a 100644 --- "a/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" +++ "b/docs/\346\265\213\350\257\225/\346\265\213\350\257\225\346\240\207\347\255\276.md" @@ -1,6 +1,6 @@ 该页面用来测试自定义标签。 diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index 7a9eb3f2..8f828160 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -8,36 +8,54 @@ const getDirTree = (cmd) => { extensions: /\.md/, prerender: true, } + const tagsArr = [] const dirTree = dirs.map(path => DirectoryTree({ path, options: otherProps, + tagsArr })) - return dirTree + + return { + dirTree, + // duplicate total tags from document. + tagsArr: Array.from(new Set(tagsArr)) + } } // eg: ['docs/quick_start.md', 'a'] // output: ['/quick_start', '/a/b', '/a/b/c'] const getPrerenderRoutes = (dirTree) => { const dpCloneDirTree = JSON.parse(JSON.stringify(dirTree)) - const result = getPrerenderRoute(dpCloneDirTree) + const result = recursiveDirTree(dpCloneDirTree) result.push('/404') return result } -function getPrerenderRoute(data) { - const arr = [] - return recursive(data, '', arr) +function recursiveDirTree(data) { + return recursive( + data, + '', + [] + ) } -function recursive(data, routePath, arr) { +function recursive( + data, + routePath, + prerenderRouteArr, +) { data.forEach((item) => { const { mdconf } = item || {} - const { abbrlink } = mdconf || {} + const { abbrlink, tags } = mdconf || {} const composeRouteName = `${routePath}/${item.name}`.replace(/.md$/, '') if (item.type === 'directory') { if (item.children && item.children.length > 0) { - item.children = recursive(item.children, composeRouteName, arr) + item.children = recursive( + item.children, + composeRouteName, + prerenderRouteArr, + ) } else { item.children = [] } @@ -45,10 +63,10 @@ function recursive(data, routePath, arr) { const prerenderRouteName = abbrlink ? `/${abbrlink}` : composeRouteName - arr.push(prerenderRouteName) + prerenderRouteArr.push(prerenderRouteName) } }) - return arr + return prerenderRouteArr } module.exports = { diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 0fe52fbb..5ad6d9c3 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -51,6 +51,7 @@ function safeReadDirSync(path) { function directoryTree({ path, options, + tagsArr = [] }) { const name = PATH.basename(path) const item = { name } @@ -78,6 +79,7 @@ function directoryTree({ const contentStr = fs.readFileSync(path).toString() if (!contentStr) return const contentMatch = contentStr.match(/^/) + /** generate abbrlink in FrontMatter */ if (options.generate) { const randomId = generateRandomId(8) if (!contentMatch) { @@ -96,7 +98,13 @@ function directoryTree({ } } - item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} + const yamlParse = contentMatch ? YAML.parse(contentMatch[1]) : {} + + if (Array.isArray(yamlParse.tags)) { + tagsArr.push(...yamlParse.tags) + } + + item.mdconf = yamlParse try { // see https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository/2390382#2390382 const result = execSync(`git log --format=%aD ${path} | tail -1`) @@ -131,6 +139,7 @@ function directoryTree({ directoryTree({ path: PATH.join(path, child), options, + tagsArr }), ) .filter(e => !!e) diff --git a/packages/crd-scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js index 50420478..a25c3617 100644 --- a/packages/crd-scripts/src/conf/webpack.config.dev.js +++ b/packages/crd-scripts/src/conf/webpack.config.dev.js @@ -6,11 +6,14 @@ const HtmlWebpackPlugin = require('html-webpack-plugin') const { defaultHTMLPath } = require('crd-utils') const FriendlyErrorsWebpackPlugin = require('@nuxtjs/friendly-errors-webpack-plugin') const { getDocsConfig } = require('crd-utils') +const { getDirTree } = require('./getPrerenderRoutes') const config = require('./webpack.config') const paths = require('./path') module.exports = function (cmd) { const docsConfig = getDocsConfig() + const { tagsArr } = getDirTree(cmd) + config.mode = 'development' config.devtool = 'eval-source-map' config.entry = [ @@ -113,6 +116,7 @@ module.exports = function (cmd) { config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('dev'), + tagsArr: JSON.stringify(tagsArr) }), new webpack.HotModuleReplacementPlugin(), new HtmlWebpackPlugin({ diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index 6ac7d747..aea8b011 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -18,7 +18,7 @@ const Renderer = PrerenderSPAPlugin.PuppeteerRenderer module.exports = function (cmd) { const docsConfig = getDocsConfig() - const dirTree = getDirTree(cmd) + const { dirTree, tagsArr } = getDirTree(cmd) const routes = getPrerenderRoutes(dirTree) config.mode = 'production' @@ -124,6 +124,7 @@ module.exports = function (cmd) { config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('prod'), + tagsArr: JSON.stringify(tagsArr) }), new HtmlWebpackPlugin({ inject: true, diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js index 838b0749..fdd1955e 100644 --- a/packages/crd-seed/component/Tags/index.js +++ b/packages/crd-seed/component/Tags/index.js @@ -2,6 +2,9 @@ import styles from './index.less' const Tags = ({}) => { const { user, repo } = DOCSCONFIG || {} + + console.log('tagsArr', tagsArr) + return (
    tags
    From 26635105b086e2d018299f634d4b3b79ea722aae Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 26 Mar 2022 19:20:14 +0800 Subject: [PATCH 313/352] feat: generate tagname with mapArticle --- .../src/conf/getPrerenderRoutes.js | 10 ++++-- .../src/conf/node-directory-tree.js | 33 ++++++++++++++++--- .../src/conf/webpack.config.dev.js | 5 ++- packages/crd-seed/component/Tags/index.js | 21 +++--------- packages/crd-seed/component/Tags/index.less | 5 ++- packages/crd-seed/index.js | 5 --- packages/crd-seed/layout/index.js | 15 +++++---- 7 files changed, 56 insertions(+), 38 deletions(-) diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index 8f828160..8c3211ca 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -8,17 +8,23 @@ const getDirTree = (cmd) => { extensions: /\.md/, prerender: true, } + // collect unique tags from all articles. const tagsArr = [] + const mapTagsWithArticle = [] const dirTree = dirs.map(path => DirectoryTree({ path, options: otherProps, - tagsArr + tagsArr, + mapTagsWithArticle })) return { dirTree, // duplicate total tags from document. - tagsArr: Array.from(new Set(tagsArr)) + // tagsArr: ['custom Tag 1', 'custom Tag 2'] + tagsArr, + // map tags with path. [{ tagName: 'custom Tag 1', mapArticle: [{ path, name }]}] + mapTagsWithArticle } } diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 5ad6d9c3..79a69373 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -51,7 +51,9 @@ function safeReadDirSync(path) { function directoryTree({ path, options, - tagsArr = [] + tagsArr = [], + // [{ tagName: 'custom Tag 1', mapArticle: [{ path, title }]}] + mapTagsWithArticle = [] }) { const name = PATH.basename(path) const item = { name } @@ -99,9 +101,31 @@ function directoryTree({ } const yamlParse = contentMatch ? YAML.parse(contentMatch[1]) : {} + const articleTags = yamlParse.tags + const pathResult = yamlParse.abbrlink + if (Array.isArray(articleTags)) { + const cpArticleTags = Array.from(new Set(articleTags)) - if (Array.isArray(yamlParse.tags)) { - tagsArr.push(...yamlParse.tags) + for (let i = 0; i < cpArticleTags.length; i++) { + const articleTag = cpArticleTags[i] + const articleTagIndex = tagsArr.indexOf(articleTag) + if (articleTagIndex > -1) { + mapTagsWithArticle[articleTagIndex]['mapArticle'].push({ + path: pathResult ? pathResult : name, + title: name + }) + } else { + tagsArr.push(cpArticleTags[i]) + mapTagsWithArticle.push({ + tagName: cpArticleTags[i], + mapArticle: [{ + // todo: replace name + path: pathResult ? pathResult : name, + title: name + }] + }) + } + } } item.mdconf = yamlParse @@ -139,7 +163,8 @@ function directoryTree({ directoryTree({ path: PATH.join(path, child), options, - tagsArr + tagsArr, + mapTagsWithArticle }), ) .filter(e => !!e) diff --git a/packages/crd-scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js index a25c3617..0f9ca9e6 100644 --- a/packages/crd-scripts/src/conf/webpack.config.dev.js +++ b/packages/crd-scripts/src/conf/webpack.config.dev.js @@ -12,7 +12,10 @@ const paths = require('./path') module.exports = function (cmd) { const docsConfig = getDocsConfig() - const { tagsArr } = getDirTree(cmd) + const { tagsArr, mapTagsWithArticle } = getDirTree(cmd) + + console.log('✅✅ tagsArr', tagsArr) + console.log('✅✅ mapTagsWithArticle', JSON.stringify(mapTagsWithArticle)) config.mode = 'development' config.devtool = 'eval-source-map' diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js index fdd1955e..bc12dd43 100644 --- a/packages/crd-seed/component/Tags/index.js +++ b/packages/crd-seed/component/Tags/index.js @@ -9,22 +9,11 @@ const Tags = ({}) => {
    tags
    - Annual Summary - css - ES7 - hooks - JavaScript - Mvvm - Node.js - Promise - Python - React - Redux - SEO - Schedule - TypeScript - alfred workflow - blog + { + tagsArr.map(tag => { + return {tag} + }) + }
    ) diff --git a/packages/crd-seed/component/Tags/index.less b/packages/crd-seed/component/Tags/index.less index 4e0ffefe..0cd92144 100644 --- a/packages/crd-seed/component/Tags/index.less +++ b/packages/crd-seed/component/Tags/index.less @@ -11,18 +11,17 @@ font-family: Palatino, Garamond, Times, Georgia, serif; font-size: 24px; font-weight: 400; - margin: initial; text-align: center; - overflow-wrap: break-word; - word-wrap: break-word; } &-content { width: 100%; + margin-top: 20px; } &-text { color: #6f6f6f; padding: 10px; + display: inline-flex; } } \ No newline at end of file diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 26733039..9979f7c1 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -1,7 +1,6 @@ import { Switch, Route } from 'react-router-dom' import BasicLayout from './layout' import NoMatch from './component/NoMatch' -import Tags from './component/Tags' import './index.less' // run in the Web/Router.js @@ -12,10 +11,6 @@ const ThemeSeed = (props) => { path="/404" render={routeProps => } /> - } - /> { diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index be25e2e3..032de359 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -7,6 +7,7 @@ import Icon from '../component/Icon' import Affix from '../component/Affix' import Header from '../component/Header' import Footer from '../component/Footer' +import Tags from '../component/Tags' import languageMap from '../language' import { isMobile, ifAddPrefix } from '../utils' import { getOpenSubMenuKeys } from './utils' @@ -256,6 +257,12 @@ function BasicLayout({ /> ) })} + } + /> {renderPageFooter()} @@ -265,13 +272,7 @@ function BasicLayout({ return (
    -
    +
    Date: Sun, 27 Mar 2022 23:04:06 +0800 Subject: [PATCH 314/352] feat: generate tagname with mapArticle --- config.yml | 3 ++ .../src/conf/node-directory-tree.js | 8 ++++- .../src/conf/rawTreeReplaceLoader.js | 1 + .../src/conf/webpack.config.dev.js | 8 ++--- .../src/conf/webpack.config.prod.js | 4 +-- packages/crd-seed/component/Tags/index.js | 30 ++++++++++++++----- packages/crd-seed/layout/index.js | 10 ++++++- packages/crd-utils/index.js | 10 +++++++ 8 files changed, 57 insertions(+), 17 deletions(-) diff --git a/config.yml b/config.yml index 3fc88779..aeac25b6 100644 --- a/config.yml +++ b/config.yml @@ -42,3 +42,6 @@ inject: injectLogic/index.js # Use abbrlink abbrlink: true + +# show Tags in head +tags: true diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 79a69373..47db368c 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -3,7 +3,11 @@ const fs = require('fs') const PATH = require('path') const YAML = require('yamljs') const { execSync } = require('child_process') -const { replaceForFrontMatter, generateRandomId } = require('crd-utils') +const { + replaceForFrontMatter, + generateRandomId, + getStrAfterPointed +} = require('crd-utils') const { getDigitFromDir, timeFormat } = require('../utils') const constants = { @@ -55,7 +59,9 @@ function directoryTree({ // [{ tagName: 'custom Tag 1', mapArticle: [{ path, title }]}] mapTagsWithArticle = [] }) { + console.log('✅✅ path', path) const name = PATH.basename(path) + console.log('✅✅ name', name) const item = { name } if (!options.prerender) { item.path = path diff --git a/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js index 0f53702e..6fc2006f 100644 --- a/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js +++ b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js @@ -77,5 +77,6 @@ module.exports = function (source) { content = JSON.stringify(content) .replace(/\u2028/g, '\\u2028') .replace(/\u2029/g, '\\u2029') + return `module.exports = ${content}` } diff --git a/packages/crd-scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js index 0f9ca9e6..87629331 100644 --- a/packages/crd-scripts/src/conf/webpack.config.dev.js +++ b/packages/crd-scripts/src/conf/webpack.config.dev.js @@ -12,11 +12,7 @@ const paths = require('./path') module.exports = function (cmd) { const docsConfig = getDocsConfig() - const { tagsArr, mapTagsWithArticle } = getDirTree(cmd) - - console.log('✅✅ tagsArr', tagsArr) - console.log('✅✅ mapTagsWithArticle', JSON.stringify(mapTagsWithArticle)) - + const { mapTagsWithArticle } = getDirTree(cmd) config.mode = 'development' config.devtool = 'eval-source-map' config.entry = [ @@ -119,7 +115,7 @@ module.exports = function (cmd) { config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('dev'), - tagsArr: JSON.stringify(tagsArr) + mapTagsWithArticle: JSON.stringify(mapTagsWithArticle) }), new webpack.HotModuleReplacementPlugin(), new HtmlWebpackPlugin({ diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index aea8b011..a5977e79 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -18,7 +18,7 @@ const Renderer = PrerenderSPAPlugin.PuppeteerRenderer module.exports = function (cmd) { const docsConfig = getDocsConfig() - const { dirTree, tagsArr } = getDirTree(cmd) + const { dirTree, mapTagsWithArticle } = getDirTree(cmd) const routes = getPrerenderRoutes(dirTree) config.mode = 'production' @@ -124,7 +124,7 @@ module.exports = function (cmd) { config.plugins = config.plugins.concat([ new webpack.DefinePlugin({ env: JSON.stringify('prod'), - tagsArr: JSON.stringify(tagsArr) + mapTagsWithArticle: JSON.stringify(mapTagsWithArticle) }), new HtmlWebpackPlugin({ inject: true, diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js index bc12dd43..0a6ced29 100644 --- a/packages/crd-seed/component/Tags/index.js +++ b/packages/crd-seed/component/Tags/index.js @@ -1,18 +1,34 @@ +import { Link } from 'react-router-dom' +import { ifProd } from 'crd-client-utils' import styles from './index.less' -const Tags = ({}) => { +const Tags = ({ name }) => { const { user, repo } = DOCSCONFIG || {} - console.log('tagsArr', tagsArr) - return (
    -
    tags
    +
    {name || 'Tags'}
    { - tagsArr.map(tag => { - return {tag} - }) + name + ? mapTagsWithArticle.find(({ tagName }) => tagName === name)?.mapArticle.map(({ path, title }) => { + return + {title} + + }) + : mapTagsWithArticle.map(({ tagName }) => { + return + {tagName} + + }) }
    diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 032de359..513de257 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -213,7 +213,7 @@ function BasicLayout({ <>
  • 404

    杯具啊!页面不存在
    - 返回首页 +
    在 github 访问该项目

    404

    -
    杯具啊!页面不存在
    +
    你似乎来到了没有知识存在的荒原...
    在 github 访问该项目
    - - - - - -
    -

    404

    -
    你似乎来到了没有知识存在的荒原...
    -
    在 github 访问该项目
    -
    + <> + + + + + + +
    +

    404

    +
    你似乎来到了没有知识存在的荒原...
    +
    在 github 访问该项目
    +
    + + ) } diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js index 407b5ed5..48e43aa4 100644 --- a/packages/crd-seed/component/Tags/index.js +++ b/packages/crd-seed/component/Tags/index.js @@ -1,4 +1,4 @@ -import { Link, useRouteMatch } from 'react-router-dom' +import { Link, useMatch } from 'react-router-dom' import { ifProd } from 'crd-client-utils' import { ifAddPrefix } from '../../utils' import styles from './index.less' @@ -9,7 +9,7 @@ import styles from './index.less' const Tags = () => { const { user, repo } = DOCSCONFIG || {} const path = ifAddPrefix ? `/${repo}/tags/:name` : '/tags/:name' - const routeMatch = useRouteMatch(path) || {} + const routeMatch = useMatch(path) || {} const { name } = routeMatch.params || {} return ( diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js index 4120265c..b68dd97e 100644 --- a/packages/crd-seed/index.js +++ b/packages/crd-seed/index.js @@ -1,4 +1,4 @@ -import { Switch, Route } from 'react-router-dom' +import { Routes, Route, Navigate } from 'react-router-dom' import BasicLayout from './layout' import NoMatch from './component/NoMatch' import './index.less' @@ -6,14 +6,10 @@ import './index.less' // run in the Web/Router.js const ThemeSeed = (props) => { return ( - - - - - - - - + + } /> + } /> + ) } diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 880a91da..9667a6ec 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -1,5 +1,5 @@ import * as React from 'react' -import { Switch, Link, Route, Redirect, useLocation } from 'react-router-dom' +import { Routes, Link, Route, Navigate, useLocation } from 'react-router-dom' import cx from 'classnames' import { ifDev, ifProd, ifPrerender } from 'crd-client-utils' import Menu from '../component/Menu' @@ -104,7 +104,7 @@ function BasicLayout({ ) : ( -1} > {item && item.mdconf && item.mdconf.title @@ -245,12 +245,11 @@ function BasicLayout({ [`${styles["content-fullpage"]}`]: inlineCollapsed || isMobile, })} > - + {/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} } + element={} /> {routeData.map((item) => { const { path, mdconf, component } = item @@ -260,11 +259,9 @@ function BasicLayout({ return ( - - + element={} + /> ) })} { @@ -272,23 +269,20 @@ function BasicLayout({ ? <> - - + element={} + /> - - + element={} + /> : null } {/* Todo: follow up how to use Redirect to back up the rest of route. */} {/* */} - + {renderPageFooter()}
    ) diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 588df873..e30d80e1 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -5,7 +5,7 @@ "main": "index.js", "dependencies": { "crd-client-utils": "^1.8.2", - "react-router-dom": "^5.1.0", + "react-router-dom": "^6.3.0", "react-switch": "^5.0.1" }, "repository": { diff --git a/packages/crd-templates/theme/default/_index.js b/packages/crd-templates/theme/default/_index.js index 95ad8741..fb98dc0a 100644 --- a/packages/crd-templates/theme/default/_index.js +++ b/packages/crd-templates/theme/default/_index.js @@ -1,25 +1,26 @@ // The position of current index.js should be kept. -import { Switch, Route, Redirect } from 'react-router-dom' +import { Routes, Route, Navigate } from 'react-router-dom' import styles from './index.less' const {{name}} = ({routeData, menuSource}) => { return (
    - - + + } + /> {routeData.map((item) => { const Comp = item.component return ( - - + element={} + /> ) })} - +
    ) } diff --git a/packages/crd-templates/theme/default/_package.json b/packages/crd-templates/theme/default/_package.json index d832f179..0bcd71e5 100644 --- a/packages/crd-templates/theme/default/_package.json +++ b/packages/crd-templates/theme/default/_package.json @@ -17,7 +17,7 @@ "create-react-doc": "{{crdVersion}}" }, "dependencies": { - "react-router-dom": "^4.2.2" + "react-router-dom": "^6.3.0" }, "author": "", "license": "MIT" diff --git a/packages/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js index e64fc0e8..6dfff077 100644 --- a/packages/crd-theme/markdown/index.js +++ b/packages/crd-theme/markdown/index.js @@ -44,7 +44,7 @@ function Markdown(markdownProps) { useEffect(() => { renderMarkdown() - }, []) + }, [getRmFirstSlashMarkdownName()]) const getName = () => { return name ? name.replace('.md', '') : '' diff --git a/packages/create-react-doc/yarn.lock b/packages/create-react-doc/yarn.lock deleted file mode 100644 index 3109ab1a..00000000 --- a/packages/create-react-doc/yarn.lock +++ /dev/null @@ -1,8139 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/cli@^7.2.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.10.3.tgz#4ea83bd997d2a41c78d07263ada3ec466fb3764b" - integrity sha512-lWB3yH5/fWY8pi2Kj5/fA+17guJ9feSBw5DNjTju3/nRi9sXnl1JPh7aKQOSvdNbiDbkzzoGYtsr46M8dGmXDQ== - dependencies: - commander "^4.0.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.1.0" - glob "^7.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - slash "^2.0.0" - source-map "^0.5.0" - optionalDependencies: - chokidar "^2.1.8" - -"@babel/code-frame@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" - integrity sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g== - dependencies: - "@babel/highlight" "7.0.0-beta.44" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" - integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== - dependencies: - "@babel/highlight" "^7.10.1" - -"@babel/code-frame@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz#324bcfd8d35cd3d47dae18cde63d752086435e9a" - integrity sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg== - dependencies: - "@babel/highlight" "^7.10.3" - -"@babel/compat-data@^7.10.1", "@babel/compat-data@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz#9af3e033f36e8e2d6e47570db91e64a846f5d382" - integrity sha512-BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.3.4": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz#73b0e8ddeec1e3fdd7a2de587a60e17c440ec77e" - integrity sha512-5YqWxYE3pyhIi84L84YcwjeEgS+fa7ZjK6IBVGTjDVfm64njkR2lfDhVR5OudLk8x2GK59YoSyVv+L/03k1q9w== - dependencies: - "@babel/code-frame" "^7.10.3" - "@babel/generator" "^7.10.3" - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helpers" "^7.10.1" - "@babel/parser" "^7.10.3" - "@babel/template" "^7.10.3" - "@babel/traverse" "^7.10.3" - "@babel/types" "^7.10.3" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" - integrity sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ== - dependencies: - "@babel/types" "7.0.0-beta.44" - jsesc "^2.5.1" - lodash "^4.2.0" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz#4d14458e539bcb04ffe34124143f5c489f2dbca9" - integrity sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA== - dependencies: - "@babel/types" "^7.10.1" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz#32b9a0d963a71d7a54f5f6c15659c3dbc2a523a5" - integrity sha512-drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA== - dependencies: - "@babel/types" "^7.10.3" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268" - integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz#0ec7d9be8174934532661f87783eb18d72290059" - integrity sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-builder-react-jsx-experimental@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz#9a7d58ad184d3ac3bafb1a452cec2bad7e4a0bc8" - integrity sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-module-imports" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-builder-react-jsx@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.3.tgz#62c4b7bb381153a0a5f8d83189b94b9fb5384fc5" - integrity sha512-vkxmuFvmovtqTZknyMGj9+uQAZzz5Z9mrbnkJnPkaYGfKTaSsYcjQdXP0lgrWLVh8wU6bCjOmXOpx+kqUi+S5Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/types" "^7.10.3" - -"@babel/helper-compilation-targets@^7.10.2": - version "7.10.2" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz#a17d9723b6e2c750299d2a14d4637c76936d8285" - integrity sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA== - dependencies: - "@babel/compat-data" "^7.10.1" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.10.1": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz#2783daa6866822e3d5ed119163b50f0fc3ae4b35" - integrity sha512-iRT9VwqtdFmv7UheJWthGc/h2s7MqoweBF9RUj77NFZsg9VfISvBTum3k6coAhJ8RWv2tj3yUjA03HxPd0vfpQ== - dependencies: - "@babel/helper-function-name" "^7.10.3" - "@babel/helper-member-expression-to-functions" "^7.10.3" - "@babel/helper-optimise-call-expression" "^7.10.3" - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - -"@babel/helper-create-regexp-features-plugin@^7.10.1", "@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz#1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd" - integrity sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-regex" "^7.10.1" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz#d27120a5e57c84727b30944549b2dfeca62401a8" - integrity sha512-bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ== - dependencies: - "@babel/helper-function-name" "^7.10.3" - "@babel/types" "^7.10.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz#e9d76305ee1162ca467357ae25df94f179af2b7e" - integrity sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg== - dependencies: - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-function-name@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" - integrity sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg== - dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.44" - "@babel/template" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - -"@babel/helper-function-name@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4" - integrity sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-function-name@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz#79316cd75a9fa25ba9787ff54544307ed444f197" - integrity sha512-FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw== - dependencies: - "@babel/helper-get-function-arity" "^7.10.3" - "@babel/template" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/helper-get-function-arity@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" - integrity sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw== - dependencies: - "@babel/types" "7.0.0-beta.44" - -"@babel/helper-get-function-arity@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d" - integrity sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-get-function-arity@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz#3a28f7b28ccc7719eacd9223b659fdf162e4c45e" - integrity sha512-iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-hoist-variables@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz#d554f52baf1657ffbd7e5137311abc993bb3f068" - integrity sha512-9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-member-expression-to-functions@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz#432967fd7e12a4afef66c4687d4ca22bc0456f15" - integrity sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-member-expression-to-functions@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz#bc3663ac81ac57c39148fef4c69bf48a77ba8dd6" - integrity sha512-q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-module-imports@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876" - integrity sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-module-imports@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz#766fa1d57608e53e5676f23ae498ec7a95e1b11a" - integrity sha512-Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-module-transforms@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz#24e2f08ee6832c60b157bb0936c86bef7210c622" - integrity sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg== - dependencies: - "@babel/helper-module-imports" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-simple-access" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz#b4a1f2561870ce1247ceddb02a3860fa96d72543" - integrity sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-optimise-call-expression@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz#f53c4b6783093195b0f69330439908841660c530" - integrity sha512-kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg== - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.1", "@babel/helper-plugin-utils@^7.8.0": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz#ec5a5cf0eec925b66c60580328b122c01230a127" - integrity sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA== - -"@babel/helper-plugin-utils@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz#aac45cccf8bc1873b99a85f34bceef3beb5d3244" - integrity sha512-j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g== - -"@babel/helper-regex@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz#021cf1a7ba99822f993222a001cc3fec83255b96" - integrity sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz#bad6aaa4ff39ce8d4b82ccaae0bfe0f7dbb5f432" - integrity sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-wrap-function" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-remap-async-to-generator@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz#18564f8a6748be466970195b876e8bba3bccf442" - integrity sha512-sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-wrap-function" "^7.10.1" - "@babel/template" "^7.10.3" - "@babel/traverse" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/helper-replace-supers@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz#ec6859d20c5d8087f6a2dc4e014db7228975f13d" - integrity sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.1" - "@babel/helper-optimise-call-expression" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-simple-access@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz#08fb7e22ace9eb8326f7e3920a1c2052f13d851e" - integrity sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw== - dependencies: - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-split-export-declaration@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" - integrity sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA== - dependencies: - "@babel/types" "7.0.0-beta.44" - -"@babel/helper-split-export-declaration@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" - integrity sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g== - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-validator-identifier@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" - integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== - -"@babel/helper-validator-identifier@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz#60d9847f98c4cea1b279e005fdb7c28be5412d15" - integrity sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw== - -"@babel/helper-wrap-function@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz#956d1310d6696257a7afd47e4c42dfda5dfcedc9" - integrity sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helpers@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" - integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== - dependencies: - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/highlight@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" - integrity sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - -"@babel/highlight@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" - integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz#c633bb34adf07c5c13156692f5922c81ec53f28d" - integrity sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw== - dependencies: - "@babel/helper-validator-identifier" "^7.10.3" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz#2e142c27ca58aa2c7b119d09269b702c8bbad28c" - integrity sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg== - -"@babel/parser@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz#7e71d892b0d6e7d04a1af4c3c79d72c1f10f5315" - integrity sha512-oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA== - -"@babel/plugin-proposal-async-generator-functions@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz#5a02453d46e5362e2073c7278beab2e53ad7d939" - integrity sha512-WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/helper-remap-async-to-generator" "^7.10.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.10.1", "@babel/plugin-proposal-class-properties@^7.3.4": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz#046bc7f6550bb08d9bd1d4f060f5f5a4f1087e01" - integrity sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-proposal-dynamic-import@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz#e36979dc1dc3b73f6d6816fc4951da2363488ef0" - integrity sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz#b1e691ee24c651b5a5e32213222b2379734aff09" - integrity sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz#02dca21673842ff2fe763ac253777f235e9bbf78" - integrity sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz#a9a38bc34f78bdfd981e791c27c6fdcec478c123" - integrity sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-numeric-separator" "^7.10.1" - -"@babel/plugin-proposal-object-rest-spread@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz#b8d0d22f70afa34ad84b7a200ff772f9b9fce474" - integrity sha512-ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.1" - -"@babel/plugin-proposal-optional-catch-binding@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz#c9f86d99305f9fa531b568ff5ab8c964b8b223d2" - integrity sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz#9a726f94622b653c0a3a7a59cdce94730f526f7c" - integrity sha512-yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-private-methods@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz#ed85e8058ab0fe309c3f448e5e1b73ca89cdb598" - integrity sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-proposal-unicode-property-regex@^7.10.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz#dc04feb25e2dd70c12b05d680190e138fa2c0c6f" - integrity sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz#d5bc0645913df5b17ad7eda0fa2308330bde34c5" - integrity sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz#0ae371134a42b91d5418feb3c8c8d43e1565d2da" - integrity sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz#25761ee7410bc8cf97327ba741ee94e4a61b7d99" - integrity sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz#8b8733f8c57397b3eaa47ddba8841586dcaef362" - integrity sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-arrow-functions@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz#cb5ee3a36f0863c06ead0b409b4cc43a889b295b" - integrity sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-async-to-generator@^7.10.1", "@babel/plugin-transform-async-to-generator@^7.3.4": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz#e5153eb1a3e028f79194ed8a7a4bf55f862b2062" - integrity sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg== - dependencies: - "@babel/helper-module-imports" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-remap-async-to-generator" "^7.10.1" - -"@babel/plugin-transform-block-scoped-functions@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz#146856e756d54b20fff14b819456b3e01820b85d" - integrity sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-block-scoping@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz#47092d89ca345811451cd0dc5d91605982705d5e" - integrity sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz#8d9a656bc3d01f3ff69e1fccb354b0f9d72ac544" - integrity sha512-irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-define-map" "^7.10.3" - "@babel/helper-function-name" "^7.10.3" - "@babel/helper-optimise-call-expression" "^7.10.3" - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/helper-replace-supers" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz#d3aa6eef67cb967150f76faff20f0abbf553757b" - integrity sha512-GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - -"@babel/plugin-transform-destructuring@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz#abd58e51337815ca3a22a336b85f62b998e71907" - integrity sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-dotall-regex@^7.10.1", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz#920b9fec2d78bb57ebb64a644d5c2ba67cc104ee" - integrity sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-duplicate-keys@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz#c900a793beb096bc9d4d0a9d0cde19518ffc83b9" - integrity sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-exponentiation-operator@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz#279c3116756a60dd6e6f5e488ba7957db9c59eb3" - integrity sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-for-of@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz#ff01119784eb0ee32258e8646157ba2501fcfda5" - integrity sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-function-name@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz#4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d" - integrity sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw== - dependencies: - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-literals@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz#5794f8da82846b22e4e6631ea1658bce708eb46a" - integrity sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-member-expression-literals@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz#90347cba31bca6f394b3f7bd95d2bbfd9fce2f39" - integrity sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-modules-amd@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz#65950e8e05797ebd2fe532b96e19fc5482a1d52a" - integrity sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz#d5ff4b4413ed97ffded99961056e1fb980fb9301" - integrity sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-simple-access" "^7.10.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz#004ae727b122b7b146b150d50cba5ffbff4ac56b" - integrity sha512-GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A== - dependencies: - "@babel/helper-hoist-variables" "^7.10.3" - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz#ea080911ffc6eb21840a5197a39ede4ee67b1595" - integrity sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA== - dependencies: - "@babel/helper-module-transforms" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz#a4f8444d1c5a46f35834a410285f2c901c007ca6" - integrity sha512-I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz#6ee41a5e648da7632e22b6fb54012e87f612f324" - integrity sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-object-super@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz#2e3016b0adbf262983bf0d5121d676a5ed9c4fde" - integrity sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-replace-supers" "^7.10.1" - -"@babel/plugin-transform-parameters@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz#b25938a3c5fae0354144a720b07b32766f683ddd" - integrity sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg== - dependencies: - "@babel/helper-get-function-arity" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-property-literals@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz#cffc7315219230ed81dc53e4625bf86815b6050d" - integrity sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-react-display-name@^7.10.1": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.3.tgz#e3c246e1b4f3e52cc7633e237ad9194c0ec482e7" - integrity sha512-dOV44bnSW5KZ6kYF6xSHBth7TFiHHZReYXH/JH3XnFNV+soEL1F5d8JT7AJ3ZBncd19Qul7SN4YpBnyWOnQ8KA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.3" - -"@babel/plugin-transform-react-jsx-development@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.1.tgz#1ac6300d8b28ef381ee48e6fec430cc38047b7f3" - integrity sha512-XwDy/FFoCfw9wGFtdn5Z+dHh6HXKHkC6DwKNWpN74VWinUagZfDcEJc3Y8Dn5B3WMVnAllX8Kviaw7MtC5Epwg== - dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-jsx-self@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz#22143e14388d72eb88649606bb9e46f421bc3821" - integrity sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-jsx-source@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz#30db3d4ee3cdebbb26a82a9703673714777a4273" - integrity sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-jsx@^7.10.1": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.3.tgz#c07ad86b7c159287c89b643f201f59536231048e" - integrity sha512-Y21E3rZmWICRJnvbGVmDLDZ8HfNDIwjGF3DXYHx1le0v0mIHCs0Gv5SavyW5Z/jgAHLaAoJPiwt+Dr7/zZKcOQ== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.3" - "@babel/helper-builder-react-jsx-experimental" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/plugin-syntax-jsx" "^7.10.1" - -"@babel/plugin-transform-react-pure-annotations@^7.10.1": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.3.tgz#97840981673fcb0df2cc33fb25b56cc421f7deef" - integrity sha512-n/fWYGqvTl7OLZs/QcWaKMFdADPvC3V6jYuEOpPyvz97onsW9TXn196fHnHW1ZgkO20/rxLOgKnEtN1q9jkgqA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.3" - -"@babel/plugin-transform-regenerator@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz#6ec680f140a5ceefd291c221cb7131f6d7e8cb6d" - integrity sha512-H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz#0fc1027312b4d1c3276a57890c8ae3bcc0b64a86" - integrity sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-runtime@^7.3.4": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.3.tgz#3b287b06acc534a7cb6e6c71d6b1d88b1922dd6c" - integrity sha512-b5OzMD1Hi8BBzgQdRHyVVaYrk9zG0wset1it2o3BgonkPadXfOv0aXRqd7864DeOIu3FGKP/h6lr15FE5mahVw== - dependencies: - "@babel/helper-module-imports" "^7.10.3" - "@babel/helper-plugin-utils" "^7.10.3" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz#e8b54f238a1ccbae482c4dce946180ae7b3143f3" - integrity sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-spread@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz#0c6d618a0c4461a274418460a28c9ccf5239a7c8" - integrity sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-sticky-regex@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz#90fc89b7526228bed9842cff3588270a7a393b00" - integrity sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/helper-regex" "^7.10.1" - -"@babel/plugin-transform-template-literals@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz#69d39b3d44b31e7b4864173322565894ce939b25" - integrity sha512-yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.3" - -"@babel/plugin-transform-typeof-symbol@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz#60c0239b69965d166b80a84de7315c1bc7e0bb0e" - integrity sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-unicode-escapes@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz#add0f8483dab60570d9e03cecef6c023aa8c9940" - integrity sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/plugin-transform-unicode-regex@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz#6b58f2aea7b68df37ac5025d9c88752443a6b43f" - integrity sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.1" - "@babel/helper-plugin-utils" "^7.10.1" - -"@babel/polyfill@^7.2.5": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.1.tgz#d56d4c8be8dd6ec4dce2649474e9b707089f739f" - integrity sha512-TviueJ4PBW5p48ra8IMtLXVkDucrlOZAIZ+EXqS3Ot4eukHbWiqcn7DcqpA1k5PcKtmJ4Xl9xwdv6yQvvcA+3g== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/preset-env@^7.3.4": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.3.tgz#3e58c9861bbd93b6a679987c7e4bd365c56c80c9" - integrity sha512-jHaSUgiewTmly88bJtMHbOd1bJf2ocYxb5BWKSDQIP5tmgFuS/n0gl+nhSrYDhT33m0vPxp+rP8oYYgPgMNQlg== - dependencies: - "@babel/compat-data" "^7.10.3" - "@babel/helper-compilation-targets" "^7.10.2" - "@babel/helper-module-imports" "^7.10.3" - "@babel/helper-plugin-utils" "^7.10.3" - "@babel/plugin-proposal-async-generator-functions" "^7.10.3" - "@babel/plugin-proposal-class-properties" "^7.10.1" - "@babel/plugin-proposal-dynamic-import" "^7.10.1" - "@babel/plugin-proposal-json-strings" "^7.10.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" - "@babel/plugin-proposal-numeric-separator" "^7.10.1" - "@babel/plugin-proposal-object-rest-spread" "^7.10.3" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.1" - "@babel/plugin-proposal-optional-chaining" "^7.10.3" - "@babel/plugin-proposal-private-methods" "^7.10.1" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.1" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.1" - "@babel/plugin-transform-arrow-functions" "^7.10.1" - "@babel/plugin-transform-async-to-generator" "^7.10.1" - "@babel/plugin-transform-block-scoped-functions" "^7.10.1" - "@babel/plugin-transform-block-scoping" "^7.10.1" - "@babel/plugin-transform-classes" "^7.10.3" - "@babel/plugin-transform-computed-properties" "^7.10.3" - "@babel/plugin-transform-destructuring" "^7.10.1" - "@babel/plugin-transform-dotall-regex" "^7.10.1" - "@babel/plugin-transform-duplicate-keys" "^7.10.1" - "@babel/plugin-transform-exponentiation-operator" "^7.10.1" - "@babel/plugin-transform-for-of" "^7.10.1" - "@babel/plugin-transform-function-name" "^7.10.1" - "@babel/plugin-transform-literals" "^7.10.1" - "@babel/plugin-transform-member-expression-literals" "^7.10.1" - "@babel/plugin-transform-modules-amd" "^7.10.1" - "@babel/plugin-transform-modules-commonjs" "^7.10.1" - "@babel/plugin-transform-modules-systemjs" "^7.10.3" - "@babel/plugin-transform-modules-umd" "^7.10.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.3" - "@babel/plugin-transform-new-target" "^7.10.1" - "@babel/plugin-transform-object-super" "^7.10.1" - "@babel/plugin-transform-parameters" "^7.10.1" - "@babel/plugin-transform-property-literals" "^7.10.1" - "@babel/plugin-transform-regenerator" "^7.10.3" - "@babel/plugin-transform-reserved-words" "^7.10.1" - "@babel/plugin-transform-shorthand-properties" "^7.10.1" - "@babel/plugin-transform-spread" "^7.10.1" - "@babel/plugin-transform-sticky-regex" "^7.10.1" - "@babel/plugin-transform-template-literals" "^7.10.3" - "@babel/plugin-transform-typeof-symbol" "^7.10.1" - "@babel/plugin-transform-unicode-escapes" "^7.10.1" - "@babel/plugin-transform-unicode-regex" "^7.10.1" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.10.3" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.0.0": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.1.tgz#e2ab8ae9a363ec307b936589f07ed753192de041" - integrity sha512-Rw0SxQ7VKhObmFjD/cUcKhPTtzpeviEFX1E6PgP+cYOhQ98icNqtINNFANlsdbQHrmeWnqdxA4Tmnl1jy5tp3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.1" - "@babel/plugin-transform-react-display-name" "^7.10.1" - "@babel/plugin-transform-react-jsx" "^7.10.1" - "@babel/plugin-transform-react-jsx-development" "^7.10.1" - "@babel/plugin-transform-react-jsx-self" "^7.10.1" - "@babel/plugin-transform-react-jsx-source" "^7.10.1" - "@babel/plugin-transform-react-pure-annotations" "^7.10.1" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.8.4": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.1.tgz#b6eb75cac279588d3100baecd1b9894ea2840822" - integrity sha512-nQbbCbQc9u/rpg1XCxoMYQTbSMVZjCDxErQ1ClCn9Pvcmv1lGads19ep0a2VsEiIJeHqjZley6EQGEC3Yo1xMA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.3.4": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz#670d002655a7c366540c67f6fd3342cd09500364" - integrity sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" - integrity sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - lodash "^4.2.0" - -"@babel/template@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" - integrity sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig== - dependencies: - "@babel/code-frame" "^7.10.1" - "@babel/parser" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/template@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz#4d13bc8e30bf95b0ce9d175d30306f42a2c9a7b8" - integrity sha512-5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA== - dependencies: - "@babel/code-frame" "^7.10.3" - "@babel/parser" "^7.10.3" - "@babel/types" "^7.10.3" - -"@babel/traverse@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" - integrity sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/generator" "7.0.0-beta.44" - "@babel/helper-function-name" "7.0.0-beta.44" - "@babel/helper-split-export-declaration" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - debug "^3.1.0" - globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.2.0" - -"@babel/traverse@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" - integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ== - dependencies: - "@babel/code-frame" "^7.10.1" - "@babel/generator" "^7.10.1" - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/parser" "^7.10.1" - "@babel/types" "^7.10.1" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.10.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz#0b01731794aa7b77b214bcd96661f18281155d7e" - integrity sha512-qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug== - dependencies: - "@babel/code-frame" "^7.10.3" - "@babel/generator" "^7.10.3" - "@babel/helper-function-name" "^7.10.3" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/parser" "^7.10.3" - "@babel/types" "^7.10.3" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" - integrity sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ== - dependencies: - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz#6886724d31c8022160a7db895e6731ca33483921" - integrity sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.3", "@babel/types@^7.4.4": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz#6535e3b79fea86a6b09e012ea8528f935099de8e" - integrity sha512-nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.3" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@eslint/eslintrc@^0.2.2": - version "0.2.2" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" - integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - lodash "^4.17.19" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@nuxtjs/friendly-errors-webpack-plugin@^2.0.2": - version "2.1.0" - resolved "https://registry.npmjs.org/@nuxtjs/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.1.0.tgz#90d0b587b2f118f7f54e3da3d79329ffc72a8578" - integrity sha512-FI8uTmMeA+xnPIfiLFwq3aZ4PzIdTRN5uw9oa7JHPtB1DM9WgiJeJTBLEzz16yIuDrjRAMOim1BQK3bOOhKANg== - dependencies: - chalk "^2.3.2" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - strip-ansi "^4.0.0" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/json-schema@^7.0.4": - version "7.0.5" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" - integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "14.0.6" - resolved "https://registry.npmjs.org/@types/node/-/node-14.0.6.tgz#f9e178b2da31a4b0ec60b64649e244c31ce18daf" - integrity sha512-FbNmu4F67d3oZMWBV6Y4MaPER+0EpE9eIYf2yaHhCWovc1dlXCZkqGX4NLHfVVr6umt20TNBdRzrNJIzIKfdbw== - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== - -acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -address@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@^5.0.0: - version "5.5.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" - integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" - integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== - dependencies: - lodash "^4.17.10" - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-eslint@^8.0.1: - version "8.2.6" - resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9" - integrity sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/traverse" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - eslint-scope "3.7.1" - eslint-visitor-keys "^1.0.0" - -babel-loader@^8.0.5: - version "8.1.0" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babylon@7.0.0-beta.44: - version "7.0.0-beta.44" - resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" - integrity sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g== - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^4.12.0, browserslist@^4.8.5: - version "4.12.1" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.12.1.tgz#6d08bef149b70d153930780ba762644e0f329122" - integrity sha512-WMjXwFtPskSW1pQUDJRxvRKRkeCr7usN0O/Za76N+F4oadaTdQHotSGcX9jT/Hs7mSKPkyMFNvqawB/1HzYDKQ== - dependencies: - caniuse-lite "^1.0.30001088" - electron-to-chromium "^1.3.481" - escalade "^3.0.1" - node-releases "^1.1.58" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw= - dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30001069" - resolved "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001069.tgz#32ddb662e20ae21f3123eaae28504261b2d732b1" - integrity sha512-eW2e5Tar+M5lG2eV5+cvlOOm/ayktZV/rdU+rECFqXv5hnfcrHr1ilwiH2ZxDOtnW72qH/XMHFeIg0e3AhhWyA== - -caniuse-lite@^1.0.30001088: - version "1.0.30001088" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz#23a6b9e192106107458528858f2c0e0dba0d9073" - integrity sha512-6eYUrlShRYveyqKG58HcyOfPgh3zb2xqs7NvT2VVtP3hEUeeWvc3lqhpeMTxYWBBeeaT9A4bKsrtjATm66BTHg== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" - integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -ci-info@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== - dependencies: - chalk "^1.1.3" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@^2.2.6: - version "2.2.6" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - -clean-css@4.2.x: - version "4.2.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -clone@^2.1.1, clone@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= - dependencies: - q "^1.1.2" - -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.npmjs.org/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM= - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors-cli@^1.0.13, colors-cli@^1.0.17, colors-cli@^1.0.26: - version "1.0.27" - resolved "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.27.tgz#1a33f6cfc013cdb55e50bac0bff1a8f5f0866cf8" - integrity sha512-oyHDobdhzZDRHzVqOX+0owvXkS6recku25PUutP89BggJ3HikYTBpa7HZOoiAwhKFgHdyfJ+YNJyqxM4kBcEUg== - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@2.15.1: - version "2.15.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== - -commander@2.17.x: - version "2.17.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commander@^2.12.2, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -consola@^2.10.0: - version "2.12.2" - resolved "https://registry.npmjs.org/consola/-/consola-2.12.2.tgz#9610f158e7b0a9ecc8f8bb0c4fc8e7c52bf41d05" - integrity sha512-c9mzemrAk57s3UIjepn8KKkuEH5fauMdot5kFSJUnqHcnApVS9Db8Rbv5AZ1Iz6lXzaGe9z1crQXhJtGX4h/Og== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.1.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-markdown-image-webpack-plugin@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/copy-markdown-image-webpack-plugin/-/copy-markdown-image-webpack-plugin-2.0.0.tgz#c3bb1d96e09c3ea40c7a3aa0dee8631e81cdda30" - integrity sha512-jNS8/qrW018wPtfEG3klZeq/en940J1nhqEE6VmE0UMrhgOUeVdP1JTIO/4kRd92qiSJCVD9MznPV34h3GAFJw== - dependencies: - write "^1.0.3" - -copy-template-dir@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/copy-template-dir/-/copy-template-dir-1.4.0.tgz#cb2bd62415abe963a53bb867bb24379df3998112" - integrity sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q== - dependencies: - end-of-stream "^1.1.0" - graceful-fs "^4.1.3" - maxstache "^1.0.0" - maxstache-stream "^1.0.0" - mkdirp "^0.5.1" - noop2 "^2.0.0" - pump "^1.0.0" - readdirp "^2.0.0" - run-parallel "^1.1.4" - -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - -core-js@^2.6.5: - version "2.6.11" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -crd-scripts@^0.2.20: - version "0.2.20" - resolved "https://registry.npmjs.org/crd-scripts/-/crd-scripts-0.2.20.tgz#f846587ca3234708cb243f23f731310fa92a951c" - integrity sha512-iHbW5qIHHDXVIq5fjWmFPN4QG/xlQAUzg+KMp7Fc+R1xEYD/iDNCP6/GMRl7KctgUx/sw/uDdGRcKhsewkIotQ== - dependencies: - "@babel/cli" "^7.2.3" - "@babel/core" "^7.3.4" - "@babel/plugin-proposal-class-properties" "^7.3.4" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.3.4" - "@babel/plugin-transform-runtime" "^7.3.4" - "@babel/polyfill" "^7.2.5" - "@babel/preset-env" "^7.3.4" - "@babel/preset-react" "^7.0.0" - "@babel/runtime" "^7.3.4" - "@nuxtjs/friendly-errors-webpack-plugin" "^2.0.2" - babel-eslint "^8.0.1" - babel-loader "^8.0.5" - colors-cli "^1.0.13" - copy-markdown-image-webpack-plugin "^2.0.0" - copy-template-dir "^1.3.0" - crd-theme "^0.2.20" - crd-utils "^0.2.8" - css-loader "^0.28.7" - detect-port "^1.2.2" - eslint "^7.11.0" - eslint-loader "^4.0.2" - file-loader "^1.1.11" - fs-extra "^5.0.0" - gh-pages "^1.2.0" - highlight.js "^9.12.0" - html-webpack-plugin "^3.2.0" - js-yaml "^3.14.0" - less-loader "^4.1.0" - loader-utils "^2.0.0" - loading-cli "^1.0.6" - local-ip-url "^1.0.1" - mini-css-extract-plugin "^0.4.0" - open-browsers "^1.1.1" - optimize-css-assets-webpack-plugin "^4.0.0" - postcss-flexbugs-fixes "^3.2.0" - postcss-loader "^2.0.9" - raw-content-replace-loader "^1.0.1" - rimraf "^2.6.2" - string-replace-loader "^2.1.1" - style-loader "^0.19.1" - uglifyjs-webpack-plugin "^2.1.1" - upath "^1.0.2" - url-replace-loader "^1.0.0" - webpack "^4.40.2" - webpack-dev-middleware "^3.7.1" - webpack-dev-server "^3.8.1" - webpack-hot-dev-clients "^1.0.4" - webpackbar "^4.0.0" - write "^1.0.3" - yamljs "^0.3.0" - -crd-templates@^0.2.19: - version "0.2.19" - resolved "https://registry.npmjs.org/crd-templates/-/crd-templates-0.2.19.tgz#52a244170514bcc4dddee6a162b09f3df6976bf1" - integrity sha512-CNYTNZ/RbUlP51WquYIDuOL/AW2SNdh8KFlhMKm6B902efpJWz66XYHAwvZ2tR3DLXZJAHwyQcfu1JaSk98IzQ== - -crd-theme@^0.2.20: - version "0.2.20" - resolved "https://registry.npmjs.org/crd-theme/-/crd-theme-0.2.20.tgz#78d9b38c92e3674325afcc8fa453533b4231c0ec" - integrity sha512-K/fvTZRIfg09fcJJv61zXvQQIXP9Ed9PA47olhsb/AE68rWKLxw+wjpzq6zdpDnh4E7dAyXeby2xc7dbWkc5fw== - dependencies: - classnames "^2.2.6" - diana "^1.0.2" - less "^3.0.2" - react "^16.8.4" - react-dom "^16.8.4" - react-dynamic-loadable "^1.1.2" - react-hot-loader "^4.1.1" - react-markdown "^3.3.0" - react-router-dom "^4.2.2" - react-switch "^5.0.1" - -crd-utils@^0.2.8: - version "0.2.8" - resolved "https://registry.npmjs.org/crd-utils/-/crd-utils-0.2.8.tgz#12a40e2ee55ac74030eafbef7d3fd8e4377271f7" - integrity sha512-tB01K67Qa7iAxSdpAL9yyouxoDv+ctGSlR0vL10gPSCDbrERf9j5ZCQA7dABvb5vTSXUyX/a0XbocHjA90PnzA== - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-loader@^0.28.7: - version "0.28.11" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" - integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg== - dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - cssnano "^3.10.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.0" - object-assign "^4.1.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" - postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-selector-tokenizer@^0.7.0: - version "0.7.2" - resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" - integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - regexpu-core "^4.6.0" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano@^3.10.0: - version "3.10.0" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg= - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.1: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -detect-port@^1.2.2: - version "1.3.0" - resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" - integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -diana@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/diana/-/diana-1.0.2.tgz#effbbe0ea26ea1302abc088d5e0abc277b5fac66" - integrity sha512-VzOwRocfzNcbZyiHhWA/KlAIeOehwOqkT/vgJlIXCpmgXlO8zNl20abLZfEVGpgFRX90eXxAGRSnGqQQgoLwNA== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.2.7: - version "1.3.454" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.454.tgz#9bf7db2cfa90b48a64a1f13111d667bacfcae618" - integrity sha512-2ODSCBwHsdB8T6csLaAbXIMYtrhu8oN1c5gS+/C2OqdfF35aXhDsnu8p+d7crbOpVXZnUza8I/Xl31mzkfnxGg== - -electron-to-chromium@^1.3.481: - version "1.3.483" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz#9269e7cfc1c8e72709824da171cbe47ca5e3ca9e" - integrity sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg== - -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/entities/-/entities-2.0.2.tgz#ac74db0bba8d33808bbf36809c3a5c3683531436" - integrity sha512-dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw== - -errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" - integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== - dependencies: - stackframe "^1.1.1" - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz#52568a77443f6927cd0ab9c73129137533c965ed" - integrity sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-loader@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" - integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== - dependencies: - find-cache-dir "^3.3.1" - fs-extra "^8.1.0" - loader-utils "^2.0.0" - object-hash "^2.0.3" - schema-utils "^2.6.5" - -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - -eslint@^7.11.0: - version "7.17.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" - integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.2.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^6.0.0" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.19" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.4" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: - version "0.11.3" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" - integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== - dependencies: - flat-cache "^3.0.4" - -file-loader@^1.1.11: - version "1.1.11" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" - integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg== - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.4.5" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filename-reserved-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" - integrity sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q= - -filenamify-url@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz#b32bd81319ef5863b73078bed50f46a4f7975f50" - integrity sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A= - dependencies: - filenamify "^1.0.0" - humanize-url "^1.0.0" - -filenamify@^1.0.0: - version "1.2.1" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" - integrity sha1-qfL/0RxQO+0wABUCknI3jx8TZaU= - dependencies: - filename-reserved-regex "^1.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" - integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0: - version "1.11.0" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" - integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== - dependencies: - debug "^3.0.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" - integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -gh-pages@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-1.2.0.tgz#1acb92801078f7c038a167f447221d1496ccfbee" - integrity sha512-cGLYAvxtlQ1iTwAS4g7FreZPXoE/g62Fsxln2mmR19mgs4zZI+XJ+wVVUhBFCF/0+Nmvbq+abyTWue1m1BSnmg== - dependencies: - async "2.6.1" - commander "2.15.1" - filenamify-url "^1.0.0" - fs-extra "^5.0.0" - globby "^6.1.0" - graceful-fs "4.1.11" - rimraf "^2.6.2" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global@^4.3.0: - version "4.4.0" - resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -graceful-fs@4.1.11: - version "4.1.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.4" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -highlight.js@^9.12.0: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - -history@^4.7.2: - version "4.10.1" - resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoist-non-react-statics@^2.5.0: - version "2.5.5" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" - integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== - -hoist-non-react-statics@^3.3.0: - version "3.3.2" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-entities@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" - integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" - integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -htmlparser2@^3.3.0: - version "3.10.1" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -humanize-url@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz#f4ab99e0d288174ca4e1e50407c55fbae464efff" - integrity sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8= - dependencies: - normalize-url "^1.0.0" - strip-url-auth "^1.0.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= - dependencies: - postcss "^6.0.1" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.4, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" - integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk= - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -js-base64@^2.1.9: - version "2.5.2" - resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" - integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1, js-yaml@^3.14.0: - version "3.14.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -less-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" - integrity sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^3.0.0" - -less@^3.0.2: - version "3.11.3" - resolved "https://registry.npmjs.org/less/-/less-3.11.3.tgz#2d853954fcfe0169a8af869620bcaa16563dcc1c" - integrity sha512-VkZiTDdtNEzXA3LgjQiC3D7/ejleBPFVvq+aRI9mIj+Zhmif5TvFPM244bT4rzkvOCvJ9q4zAztok1M7Nygagw== - dependencies: - clone "^2.1.2" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - promise "^7.1.1" - request "^2.83.0" - source-map "~0.6.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loading-cli@^1.0.6: - version "1.1.0" - resolved "https://registry.npmjs.org/loading-cli/-/loading-cli-1.1.0.tgz#3457edaa3290439ad0061755174363a8091d56bc" - integrity sha512-r6Kj0Y3d3isT4vvJ0tFlND1CcLkpatWmlgQs/PEfnSofJSHZwAbsqexnpQEDj4nlxSXEqFWh/Wu2iQXAAZRPNQ== - dependencies: - colors-cli "^1.0.26" - -local-ip-url@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/local-ip-url/-/local-ip-url-1.0.3.tgz#4a4bf4eff91a847f870918dff3e1e3273605a81d" - integrity sha512-OyHVtNHgSmxr8B+6iA8sxlGrdNQJdr6M8db5/v83BdZA/cYe7+0i1XsyBQ0AoRj2nK32O3znEuPU9/b8TS6iww== - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.0: - version "4.17.15" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.19, lodash@^4.17.20: - version "4.17.20" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -math-expression-evaluator@^1.2.14: - version "1.2.22" - resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz#c14dcb3d8b4d150e5dcea9c68c8dad80309b0d5e" - integrity sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ== - -maxstache-stream@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz#9c7f5cab7e5fdd2d90da86143b4e9631ea328040" - integrity sha1-nH9cq35f3S2Q2oYUO06WMeoygEA= - dependencies: - maxstache "^1.0.0" - pump "^1.0.0" - split2 "^1.0.0" - through2 "^2.0.0" - -maxstache@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz#2231d5180ba783d5ecfc31c45fedac7ae4276984" - integrity sha1-IjHVGAung9Xs/DHEX+2seuQnaYQ= - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdast-add-list-metadata@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf" - integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA== - dependencies: - unist-util-visit-parents "1.1.2" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": - version "1.44.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.4: - version "2.4.6" - resolved "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -mini-css-extract-plugin@^0.4.0: - version "0.4.5" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz#c99e9e78d54f3fa775633aee5933aeaa4e80719a" - integrity sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w== - dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.58: - version "1.1.58" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" - integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== - -noop2@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b" - integrity sha1-S2NgFemIK1R4PAK0EvaZ2MXNCls= - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@^1.0.0, normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^2.0.3: - version "2.1.1" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09" - integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== - -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -open-browsers@^1.1.1: - version "1.2.2" - resolved "https://registry.npmjs.org/open-browsers/-/open-browsers-1.2.2.tgz#1f355f892e0f2bd05a4b62923e7c9fc293ea1164" - integrity sha512-gmJ4L06TDDgOgw7qy8t6P1GkHtBNcnuIULEH/vyF4N6r2zKDFqSJx1qIh2sWii+VYYekyIagHZvLDc2jZSUDJw== - dependencies: - colors-cli "^1.0.13" - cross-spawn "^6.0.5" - open "^7.0.0" - -open@^7.0.0: - version "7.0.4" - resolved "https://registry.npmjs.org/open/-/open-7.0.4.tgz#c28a9d315e5c98340bf979fdcb2e58664aa10d83" - integrity sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-4.0.3.tgz#4f714e276b279700892c4a6202b7e22812d6f683" - integrity sha512-iOfMsuGMPbM/bZZ731gwtAXfXjIkR97BXqUXsPGIzBaQzpvqajsoIFlR+z+Q7FLcq2TmV4JFGo80d98ttfRzhA== - dependencies: - cssnano "^3.10.0" - last-call-webpack-plugin "^3.0.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-entities@^1.1.0: - version "1.2.2" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" - integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -portfinder@^1.0.26: - version "1.0.26" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" - integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.1" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14= - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks= - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0= - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0= - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - integrity sha1-uavye4isGIFYpesSq8riAmO5GTI= - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU= - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg= - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM= - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" - integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== - dependencies: - postcss "^5.0.4" - -postcss-flexbugs-fixes@^3.2.0: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz#0783cc7212850ef707f97f8bc8b6fb624e00c75d" - integrity sha512-9y9kDDf2F9EjKX6x9ueNa5GARvsUbXw4ezH8vXItXHwKzljbu8awP7t5dCaabKYm18Vs1lo5bKQcnc0HkISt+w== - dependencies: - postcss "^6.0.1" - -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^2.0.9: - version "2.1.6" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740" - integrity sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg== - dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^2.0.0" - schema-utils "^0.4.0" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA= - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg= - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE= - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k= - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE= - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM= - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8= - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-modules-extract-imports@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" - integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E= - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI= - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0= - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM= - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo= - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE= - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0= - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0= - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI= - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.0, postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -prop-types@^15.6.1, prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" - integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-content-replace-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/raw-content-replace-loader/-/raw-content-replace-loader-1.0.1.tgz#a89cdd574acef724a9bc986768a0e74ca87b1ce7" - integrity sha512-ZPqeRwfgvYuBRZDKgsUNwFvcOOomWCkCcYRm9EppWMi6bFB1ofoFuE1ueGQIrdnvZ2z1RlIFsmVe9KzdpaKXig== - dependencies: - loader-utils "^1.1.0" - -react-dom@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-dynamic-loadable@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/react-dynamic-loadable/-/react-dynamic-loadable-1.1.2.tgz#9717a1a4881c775f472bba628bc3c29a7ae55243" - integrity sha512-RlT0txgyLXxqz9dbDli0xx6KO8VOKzup8tYmOVKIw/xkaEqrqk6W7tW8oXBGoRia07WbU3FxzglE0ocFIuLIGg== - dependencies: - "@babel/runtime" "^7.0.0" - react "^16.2.0" - -react-error-overlay@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz#417addb0814a90f3a7082eacba7cee588d00da89" - integrity sha512-xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw== - -react-hot-loader@^4.1.1: - version "4.12.21" - resolved "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz#332e830801fb33024b5a147d6b13417f491eb975" - integrity sha512-Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA== - dependencies: - fast-levenshtein "^2.0.6" - global "^4.3.0" - hoist-non-react-statics "^3.3.0" - loader-utils "^1.1.0" - prop-types "^15.6.1" - react-lifecycles-compat "^3.0.4" - shallowequal "^1.1.0" - source-map "^0.7.3" - -react-is@^16.7.0, react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-markdown@^3.3.0: - version "3.6.0" - resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-3.6.0.tgz#29f6aaab5270c8ef0a5e234093a873ec3e01722b" - integrity sha512-TV0wQDHHPCEeKJHWXFfEAKJ8uSEsJ9LgrMERkXx05WV/3q6Ig+59KDNaTmjcoqlCpE/sH5PqqLMh4t0QWKrJ8Q== - dependencies: - mdast-add-list-metadata "1.0.1" - prop-types "^15.6.1" - remark-parse "^5.0.0" - unified "^6.1.5" - unist-util-visit "^1.3.0" - xtend "^4.0.1" - -react-router-dom@^4.2.2: - version "4.3.1" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6" - integrity sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA== - dependencies: - history "^4.7.2" - invariant "^2.2.4" - loose-envify "^1.3.1" - prop-types "^15.6.1" - react-router "^4.3.1" - warning "^4.0.1" - -react-router@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e" - integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg== - dependencies: - history "^4.7.2" - hoist-non-react-statics "^2.5.0" - invariant "^2.2.4" - loose-envify "^1.3.1" - path-to-regexp "^1.7.0" - prop-types "^15.6.1" - warning "^4.0.1" - -react-switch@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/react-switch/-/react-switch-5.0.1.tgz#449277f4c3aed5286fffd0f50d5cbc2a23330406" - integrity sha512-Pa5kvqRfX85QUCK1Jv0rxyeElbC3aNpCP5hV0LoJpU/Y6kydf0t4kRriQ6ZYA4kxWwAYk/cH51T4/sPzV9mCgQ== - dependencies: - prop-types "^15.6.2" - -react@^16.2.0, react@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.0.0, readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" - integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== - dependencies: - balanced-match "^1.0.0" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== - -regexpu-core@^4.6.0, regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== - dependencies: - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^1.1.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.1: - version "2.0.3" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" - integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== - dependencies: - css-select "^1.1.0" - dom-converter "^0.2" - htmlparser2 "^3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -request@^2.83.0: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.3.2, resolve@^1.8.1: - version "1.17.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850300090c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-parallel@^1.1.4: - version "1.1.9" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@~1.2.1: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8= - dependencies: - ajv "^5.0.0" - -schema-utils@^0.4.0, schema-utils@^0.4.5: - version "0.4.7" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== - dependencies: - node-forge "0.9.0" - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.2.1: - version "7.3.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^1.7.0: - version "1.9.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" - integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@1.4.0, sockjs-client@^1.1.5: - version "1.4.0" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.4.0" - websocket-driver "0.6.5" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split2@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz#162d9b18865f02ab2f2ad9585522db9b54c481f9" - integrity sha1-Fi2bGIZfAqsvKtlYVSLbm1TEgfk= - dependencies: - through2 "~2.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -stackframe@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71" - integrity sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ== - -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -std-env@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz#2ffa0fdc9e2263e0004c1211966e960948a40f6b" - integrity sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ== - dependencies: - ci-info "^1.6.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-replace-loader@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-2.3.0.tgz#7f29be7d73c94dd92eccd5c5a15651181d7ecd3d" - integrity sha512-HYBIHStViMKLZC/Lehxy42OuwsBaPzX/LjcF5mkJlE2SnHXmW6SW6eiHABTXnY8ZCm/REbdJ8qnA0ptmIzN0Ng== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.6.5" - -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" - -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -strip-url-auth@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz#22b0fa3a41385b33be3f331551bbb837fa0cd7ae" - integrity sha1-IrD6OkE4WzO+PzMVUbu4N/oM164= - -style-loader@^0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz#591ffc80bcefe268b77c5d9ebc0505d772619f85" - integrity sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og== - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" - integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -table@^6.0.4: - version "6.0.7" - resolved "https://registry.npmjs.org/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" - integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== - dependencies: - ajv "^7.0.2" - lodash "^4.17.20" - slice-ansi "^4.0.0" - string-width "^4.2.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -terser-webpack-plugin@^1.4.3: - version "1.4.4" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" - integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^3.1.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.7.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" - integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -through2@^2.0.0, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -tiny-invariant@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== - -tiny-warning@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -trim-trailing-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" - integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz#3000547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -tslib@^1.10.0, tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -uglify-js@^3.6.0: - version "3.10.0" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz#397a7e6e31ce820bfd1cb55b804ee140c587a9e7" - integrity sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA== - -uglifyjs-webpack-plugin@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz#e75bc80e7f1937f725954c9b4c5a1e967ea9d0d7" - integrity sha512-mHSkufBmBuJ+KHQhv5H0MXijtsoA1lynJt1lXOaotja8/I0pR4L9oGaPIZw+bQBOFittXZg9OC1sXSGO9D9ZYg== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^1.7.0" - source-map "^0.6.1" - uglify-js "^3.6.0" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -unified@^6.1.5: - version "6.2.0" - resolved "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" - integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unist-util-is@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" - integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== - -unist-util-remove-position@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" - integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== - dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== - -unist-util-visit-parents@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" - integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q== - -unist-util-visit-parents@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" - integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== - dependencies: - unist-util-is "^3.0.0" - -unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" - integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== - dependencies: - unist-util-visit-parents "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.0.2, upath@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url-replace-loader@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-replace-loader/-/url-replace-loader-1.0.0.tgz#d086db7549e2ef768500f331c3eb5619b1792329" - integrity sha512-VYz/522pjCth/6VouuVCFKC08MPmxJa5qXeK2lXoJiKDz5S8RaJ2IntI9KkNV9fAKR9/Ms10i9naaK3FY6plkg== - dependencies: - loader-utils "^1.0.2" - mime "^1.4.1" - schema-utils "^0.3.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@^0.4.0, utila@~0.4: - version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache@^2.0.3: - version "2.2.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== - -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vfile-location@^2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" - integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== - -vfile-message@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" - integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -warning@^4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.6.1: - version "1.7.2" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.0" - watchpack-chokidar2 "^2.0.0" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-dev-middleware@^3.7.1, webpack-dev-middleware@^3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.8.1: - version "3.11.0" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-hot-dev-clients@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/webpack-hot-dev-clients/-/webpack-hot-dev-clients-1.0.6.tgz#d6a08d390ebb9c0029ae94d87b8492c059de001b" - integrity sha512-O6/3IPzEN8DPQ8atbpQi3tzbLBNEETVqqlal2eU4bqOx0+msZlvx26mFz9LtAMBW+nbvW2Yewk6Re783S0gWBw== - dependencies: - colors-cli "^1.0.17" - react-error-overlay "^4.0.0" - sockjs-client "^1.1.5" - strip-ansi "^4.0.0" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.40.2: - version "4.43.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" - webpack-sources "^1.4.1" - -webpackbar@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/webpackbar/-/webpackbar-4.0.0.tgz#ee7a87f16077505b5720551af413c8ecd5b1f780" - integrity sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - consola "^2.10.0" - figures "^3.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^6.0.0" - -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.0.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yamljs@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" - integrity sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ== - dependencies: - argparse "^1.0.7" - glob "^7.0.5" - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" diff --git a/yarn.lock b/yarn.lock index 6db2c7a7..51728f66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1051,13 +1051,6 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13": - version "7.17.8" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" - integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.4", "@babel/runtime@^7.8.4": version "7.12.5" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" @@ -1065,6 +1058,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.7.6": + version "7.17.8" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" + integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" @@ -6288,19 +6288,14 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -history@^4.9.0: - version "4.10.1" - resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== +history@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b" + integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ== dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" + "@babel/runtime" "^7.7.6" -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: +hoist-non-react-statics@^3.3.0: version "3.3.2" resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -7182,11 +7177,6 @@ is-wsl@^2.1.1: dependencies: is-docker "^2.0.0" -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -7681,7 +7671,7 @@ loglevel@^1.6.8: resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -8046,14 +8036,6 @@ min-indent@^1.0.0: resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - mini-css-extract-plugin@^0.4.0: version "0.4.5" resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz#c99e9e78d54f3fa775633aee5933aeaa4e80719a" @@ -9119,13 +9101,6 @@ path-to-regexp@0.1.7: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-type@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -10165,7 +10140,7 @@ react-hot-loader@^4.1.1: shallowequal "^1.1.0" source-map "^0.7.3" -react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -10187,34 +10162,20 @@ react-markdown@^3.3.0: unist-util-visit "^1.3.0" xtend "^4.0.1" -react-router-dom@^5.1.0: - version "5.3.0" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" - integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ== +react-router-dom@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz#a0216da813454e521905b5fa55e0e5176123f43d" + integrity sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw== dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.2.1" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" + history "^5.2.0" + react-router "6.3.0" -react-router@5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d" - integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ== - dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" +react-router@6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557" + integrity sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ== + dependencies: + history "^5.2.0" react-side-effect@^2.1.0: version "2.1.1" @@ -10715,11 +10676,6 @@ resolve-from@^4.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -11886,16 +11842,6 @@ timsort@^0.3.0: resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-invariant@^1.0.2: - version "1.2.0" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" - integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== - -tiny-warning@^1.0.0, tiny-warning@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -12473,11 +12419,6 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - vary@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" From 8b3190eda31960a47e4ca3e5ce25d3c922920f2e Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 5 Apr 2022 15:40:57 +0800 Subject: [PATCH 327/352] chore: code review upgrade react-router-dom to v6 --- packages/crd-scripts/src/web/index.js | 6 ++--- packages/crd-seed/component/NoMatch/index.js | 27 ++++++++------------ 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/packages/crd-scripts/src/web/index.js b/packages/crd-scripts/src/web/index.js index de8a3a79..751b1979 100644 --- a/packages/crd-scripts/src/web/index.js +++ b/packages/crd-scripts/src/web/index.js @@ -1,4 +1,4 @@ -import { hydrate, render } from 'react-dom' +import { hydrate } from 'react-dom' import { renderToString } from 'react-dom/server'; // import { hydrateRoot } from 'react-dom/client' import '@babel/polyfill' @@ -7,8 +7,8 @@ import RouterRoot from './Router' if (ifDev) { // dev render - // document.getElementById('root').innerHTML = renderToString() - render( + document.getElementById('root').innerHTML = renderToString() + hydrate( , document.getElementById('root'), ) diff --git a/packages/crd-seed/component/NoMatch/index.js b/packages/crd-seed/component/NoMatch/index.js index bc2944a2..f5e20f03 100644 --- a/packages/crd-seed/component/NoMatch/index.js +++ b/packages/crd-seed/component/NoMatch/index.js @@ -1,25 +1,20 @@ -import { Outlet } from 'react-router-dom' import styles from './index.less' const NoMatch = () => { - console.log('test 404') // eslint-disable-next-line no-undef const { user, repo } = DOCSCONFIG || {} return ( - <> - - - - - - -
    -

    404

    -
    你似乎来到了没有知识存在的荒原...
    -
    在 github 访问该项目
    -
    - - + + + + + + +
    +

    404

    +
    你似乎来到了没有知识存在的荒原...
    +
    在 github 访问该项目
    +
    ) } From aa94a8e83611ad0553e5ca5ea3ed8110014baaa4 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 5 Apr 2022 16:01:21 +0800 Subject: [PATCH 328/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 4 ++-- packages/crd-seed/package.json | 2 +- packages/crd-templates/package.json | 2 +- packages/crd-theme/package.json | 2 +- packages/create-react-doc/package.json | 8 ++++---- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lerna.json b/lerna.json index 1e306c7b..5e05df45 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.9.0", + "version": "1.9.1", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 6c77eb47..801297f5 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.9.0", + "version": "1.9.1", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -26,7 +26,7 @@ "crd-client-utils": "^1.8.2", "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", - "crd-theme": "^1.8.0", + "crd-theme": "^1.9.1", "crd-utils": "^1.5.0", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index e30d80e1..bb6dff57 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.9.0", + "version": "1.9.1", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-templates/package.json b/packages/crd-templates/package.json index 2a5f29a0..4c9d619d 100644 --- a/packages/crd-templates/package.json +++ b/packages/crd-templates/package.json @@ -1,6 +1,6 @@ { "name": "crd-templates", - "version": "1.5.0", + "version": "1.9.1", "description": "Default Templates with Create React Doc", "repository": { "type": "git", diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json index f74c42c8..60aaa9d5 100644 --- a/packages/crd-theme/package.json +++ b/packages/crd-theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.8.0", + "version": "1.9.1", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index dbec6530..79fc3162 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.9.0", + "version": "1.9.1", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.9.0", - "crd-templates": "^1.5.0", - "crd-theme": "^1.8.0", + "crd-scripts": "^1.9.1", + "crd-templates": "^1.9.1", + "crd-theme": "^1.9.1", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" From ef67aa2f00894768b466e0402da90eaf6f23d3f5 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 5 Apr 2022 23:03:06 +0800 Subject: [PATCH 329/352] fix: duplication tags temp --- .../src/conf/getPrerenderRoutes.js | 12 ++++---- .../src/conf/node-directory-tree.js | 30 +++++++++++-------- .../src/conf/rawTreeReplaceLoader.js | 4 +-- packages/crd-scripts/src/generate.js | 4 +-- packages/crd-scripts/src/utils/initCache.js | 4 +-- packages/crd-seed/component/Tags/index.js | 1 + 6 files changed, 32 insertions(+), 23 deletions(-) diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index 73a925ae..f07d6c12 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -1,4 +1,7 @@ -const DirectoryTree = require('./node-directory-tree') +const { + directoryTree, + mapTagsWithArticle +} = require('./node-directory-tree') const getDirTree = (cmd) => { const dir = cmd.markdownPaths @@ -8,13 +11,12 @@ const getDirTree = (cmd) => { extensions: /\.md/, prerender: true, } - const mapTagsWithArticle = [] - const dirTree = dirs.map(path => DirectoryTree({ + console.log('mapTagsWithArticle before', mapTagsWithArticle) + const dirTree = dirs.map(path => directoryTree({ path, options: otherProps, - mapTagsWithArticle })) - + console.log('mapTagsWithArticle after', mapTagsWithArticle) return { dirTree, // map tags with path. [{ tagName: 'custom Tag 1', mapArticle: [{ path, name }]}] diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 0d77dd28..1a6068cd 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -41,6 +41,18 @@ function safeReadDirSync(path) { return dirData } +// collect unique tags from all articles. +const tagsArr = [] + +// The global arr cache has side effects, to follow up optimizing. +// [{ +// tagName: 'customTag1', // tag type name +// mapArticle: [{ +// path, // click tag to jump route such as /tags/customTag1 +// title // the name of article +// }] +// }] +const mapTagsWithArticle = [] /** build directory Tree, fork from https://github.com/mihneadb/node-directory-tree * path: path for file * options: { @@ -50,19 +62,10 @@ function safeReadDirSync(path) { * prerender: Boolean. Used for prerender. * generate: Boolean. Used for generating info in front-matter. * } - * tagsArr: collect unique tags from all articles. - * mapTagsWithArticle: [{ - * tagName: 'customTag1', // tag type name - * mapArticle: [{ - * path, // click tag to jump route such as /tags/customTag1 - * title // the name of article - * }]}] */ function directoryTree({ path, options, - tagsArr = [], - mapTagsWithArticle = [], routePath = '' }) { const name = PATH.basename(path, '.md') @@ -132,6 +135,8 @@ function directoryTree({ title: name }] }) + + console.log('mapTagsWithArticle222', mapTagsWithArticle) } } } @@ -171,8 +176,6 @@ function directoryTree({ directoryTree({ path: PATH.join(path, child), options, - tagsArr, - mapTagsWithArticle, routePath: routePropsCurrent }), ) @@ -187,4 +190,7 @@ function directoryTree({ return item } -module.exports = directoryTree +module.exports = { + directoryTree, + mapTagsWithArticle +} diff --git a/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js index 6fc2006f..817894b1 100644 --- a/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js +++ b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js @@ -1,5 +1,5 @@ // A variation of https://github.com/react-doc/node-directory-tree-md/blob/master/lib/directory-tree-md.js -const DirectoryTree = require('./node-directory-tree') +const { directoryTree } = require('./node-directory-tree') const PATH = require('path') const { ifInGitIgnore } = require('../utils/index') @@ -58,7 +58,7 @@ module.exports = function (source) { // if (this.cacheable) this.cacheable() if (directoryTrees && (!include || include.test(this.resourcePath))) { const dirs = Array.isArray(dir) ? dir : [dir] - const dirTree = dirs.map(path => DirectoryTree({ + const dirTree = dirs.map(path => directoryTree({ path, options: otherProps, })) diff --git a/packages/crd-scripts/src/generate.js b/packages/crd-scripts/src/generate.js index 70fe2c0a..89043823 100644 --- a/packages/crd-scripts/src/generate.js +++ b/packages/crd-scripts/src/generate.js @@ -1,6 +1,6 @@ const fs = require('fs') const { docsConfig } = require('crd-utils') -const DirectoryTree = require('./conf/node-directory-tree') +const { directoryTree } = require('./conf/node-directory-tree') module.exports = function generate(program) { if (!fs.existsSync(docsConfig)) { @@ -15,7 +15,7 @@ module.exports = function generate(program) { extensions: /\.md/, generate: true } - dirs.map(path => DirectoryTree({ + dirs.map(path => directoryTree({ path, options: otherProps, })) diff --git a/packages/crd-scripts/src/utils/initCache.js b/packages/crd-scripts/src/utils/initCache.js index eedf393c..5105856d 100644 --- a/packages/crd-scripts/src/utils/initCache.js +++ b/packages/crd-scripts/src/utils/initCache.js @@ -1,11 +1,11 @@ const write = require('write') const path = require('path') const { cacheDirPath, getDocsConfig } = require('crd-utils') -const DirectoryTree = require('../conf/node-directory-tree') +const { directoryTree } = require('../conf/node-directory-tree') module.exports = function (program, cb) { const treeData = program.markdownPaths.map((markdownPath) => { - return DirectoryTree({ + return directoryTree({ path: markdownPath, options: { mdconf: true, // Markdown config for exsiting file. diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js index 48e43aa4..452574c2 100644 --- a/packages/crd-seed/component/Tags/index.js +++ b/packages/crd-seed/component/Tags/index.js @@ -12,6 +12,7 @@ const Tags = () => { const routeMatch = useMatch(path) || {} const { name } = routeMatch.params || {} + console.log('mapTagsWithArticle', mapTagsWithArticle) return (
    {name || 'Tags'}
    From 0bd35cfde9be30753b885f40498406dea63e8fa1 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 6 Apr 2022 13:53:04 +0800 Subject: [PATCH 330/352] fix: duplication tags --- README-en.md | 2 +- README.md | 2 +- .../src/conf/getPrerenderRoutes.js | 8 +++--- .../src/conf/node-directory-tree.js | 27 +++++++++---------- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/README-en.md b/README-en.md index f10fe76c..0d6bced5 100644 --- a/README-en.md +++ b/README-en.md @@ -45,7 +45,7 @@ Create React Doc provides the official default theme [crd-seed](https://github.c * GitHub linkage. * Support using tags to customize aggregate article content. -[my blog](http://muyunyun.cn/blog) is based default theme to build。 +[my blog](http://muyunyun.cn/blog) is based [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed) theme to build。 ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) diff --git a/README.md b/README.md index 026c14a0..bfd33242 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * 支持与 GitHub 文档编辑能力联动。 * 支持配置展示标签以自定义聚合文章内容。 -[笔者博客](http://muyunyun.cn/blog) 就是使用默认主题搭建的。 +[笔者博客](http://muyunyun.cn/blog)使用的是 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed) 主题搭建的。 ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index f07d6c12..39fc0cdf 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -1,7 +1,4 @@ -const { - directoryTree, - mapTagsWithArticle -} = require('./node-directory-tree') +const { directoryTree } = require('./node-directory-tree') const getDirTree = (cmd) => { const dir = cmd.markdownPaths @@ -11,10 +8,11 @@ const getDirTree = (cmd) => { extensions: /\.md/, prerender: true, } - console.log('mapTagsWithArticle before', mapTagsWithArticle) + const mapTagsWithArticle = [] const dirTree = dirs.map(path => directoryTree({ path, options: otherProps, + mapTagsWithArticle })) console.log('mapTagsWithArticle after', mapTagsWithArticle) return { diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 1a6068cd..8ca376f7 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -44,15 +44,6 @@ function safeReadDirSync(path) { // collect unique tags from all articles. const tagsArr = [] -// The global arr cache has side effects, to follow up optimizing. -// [{ -// tagName: 'customTag1', // tag type name -// mapArticle: [{ -// path, // click tag to jump route such as /tags/customTag1 -// title // the name of article -// }] -// }] -const mapTagsWithArticle = [] /** build directory Tree, fork from https://github.com/mihneadb/node-directory-tree * path: path for file * options: { @@ -62,11 +53,19 @@ const mapTagsWithArticle = [] * prerender: Boolean. Used for prerender. * generate: Boolean. Used for generating info in front-matter. * } + * mapTagsWithArticle: [{ + * tagName: 'customTag1', // tag type name + * mapArticle: [{ + * path, // click tag to jump route such as /tags/customTag1 + * title // the name of article + * }] + * }] */ function directoryTree({ path, options, - routePath = '' + routePath = '', + mapTagsWithArticle }) { const name = PATH.basename(path, '.md') const item = { name } @@ -116,7 +115,7 @@ function directoryTree({ const yamlParse = contentMatch ? YAML.parse(contentMatch[1]) : {} const { tags: articleTags, abbrlink } = yamlParse - if (Array.isArray(articleTags)) { + if (Array.isArray(articleTags) && Array.isArray(mapTagsWithArticle)) { const cpArticleTags = Array.from(new Set(articleTags)) for (let i = 0; i < cpArticleTags.length; i++) { const articleTag = cpArticleTags[i] @@ -176,7 +175,8 @@ function directoryTree({ directoryTree({ path: PATH.join(path, child), options, - routePath: routePropsCurrent + routePath: routePropsCurrent, + mapTagsWithArticle }), ) .filter(e => !!e) @@ -191,6 +191,5 @@ function directoryTree({ } module.exports = { - directoryTree, - mapTagsWithArticle + directoryTree } From d72d7c387d0f5ffa10162dfe7492a5d8863ff5a8 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 7 Apr 2022 13:35:08 +0800 Subject: [PATCH 331/352] fix: optimize duplication tags --- packages/crd-scripts/src/conf/getPrerenderRoutes.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index 39fc0cdf..af27a9ac 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -14,7 +14,6 @@ const getDirTree = (cmd) => { options: otherProps, mapTagsWithArticle })) - console.log('mapTagsWithArticle after', mapTagsWithArticle) return { dirTree, // map tags with path. [{ tagName: 'custom Tag 1', mapArticle: [{ path, name }]}] From 56f04ed27296ce561390f5988663bb1ce7e78ee5 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 8 Apr 2022 19:15:44 +0800 Subject: [PATCH 332/352] fix: solve duplaction tags problem --- packages/crd-scripts/src/conf/getDirTree.js | 26 +++++++++++++++++++ .../src/conf/getPrerenderRoutes.js | 24 ----------------- .../src/conf/node-directory-tree.js | 2 -- .../src/conf/webpack.config.dev.js | 2 +- .../src/conf/webpack.config.prod.js | 3 ++- 5 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 packages/crd-scripts/src/conf/getDirTree.js diff --git a/packages/crd-scripts/src/conf/getDirTree.js b/packages/crd-scripts/src/conf/getDirTree.js new file mode 100644 index 00000000..5deb1ed9 --- /dev/null +++ b/packages/crd-scripts/src/conf/getDirTree.js @@ -0,0 +1,26 @@ +const { directoryTree } = require('./node-directory-tree') + +const getDirTree = (cmd) => { + const dir = cmd.markdownPaths + const dirs = Array.isArray(dir) ? dir : [dir] + const otherProps = { + mdconf: true, + extensions: /\.md/, + prerender: true, + } + const mapTagsWithArticle = [] + const dirTree = dirs.map(path => directoryTree({ + path, + options: otherProps, + mapTagsWithArticle + })) + return { + dirTree, + // map tags with path. [{ tagName: 'custom Tag 1', mapArticle: [{ path, name }]}] + mapTagsWithArticle + } +} + +module.exports = { + getDirTree, +} diff --git a/packages/crd-scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js index af27a9ac..d5b046b9 100644 --- a/packages/crd-scripts/src/conf/getPrerenderRoutes.js +++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js @@ -1,26 +1,3 @@ -const { directoryTree } = require('./node-directory-tree') - -const getDirTree = (cmd) => { - const dir = cmd.markdownPaths - const dirs = Array.isArray(dir) ? dir : [dir] - const otherProps = { - mdconf: true, - extensions: /\.md/, - prerender: true, - } - const mapTagsWithArticle = [] - const dirTree = dirs.map(path => directoryTree({ - path, - options: otherProps, - mapTagsWithArticle - })) - return { - dirTree, - // map tags with path. [{ tagName: 'custom Tag 1', mapArticle: [{ path, name }]}] - mapTagsWithArticle - } -} - // eg: ['docs/quick_start.md', 'a'] // output: ['/quick_start', '/a/b', '/a/b/c'] const getPrerenderRoutes = (dirTree) => { @@ -70,6 +47,5 @@ function recursive( } module.exports = { - getDirTree, getPrerenderRoutes } diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 8ca376f7..deeac6f3 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -134,8 +134,6 @@ function directoryTree({ title: name }] }) - - console.log('mapTagsWithArticle222', mapTagsWithArticle) } } } diff --git a/packages/crd-scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js index 87629331..def68b66 100644 --- a/packages/crd-scripts/src/conf/webpack.config.dev.js +++ b/packages/crd-scripts/src/conf/webpack.config.dev.js @@ -6,7 +6,7 @@ const HtmlWebpackPlugin = require('html-webpack-plugin') const { defaultHTMLPath } = require('crd-utils') const FriendlyErrorsWebpackPlugin = require('@nuxtjs/friendly-errors-webpack-plugin') const { getDocsConfig } = require('crd-utils') -const { getDirTree } = require('./getPrerenderRoutes') +const { getDirTree } = require('./getDirTree') const config = require('./webpack.config') const paths = require('./path') diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index a5977e79..fa229c22 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -12,7 +12,8 @@ const { defaultHTMLPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('crd-utils') const config = require('./webpack.config') const paths = require('./path') -const { getPrerenderRoutes, getDirTree } = require('./getPrerenderRoutes') +const { getPrerenderRoutes } = require('./getPrerenderRoutes') +const { getDirTree } = require('./getDirTree') const Renderer = PrerenderSPAPlugin.PuppeteerRenderer From 444a90b7dacc16ad36d14d2cc5d47fa0fb88719d Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 9 Apr 2022 14:35:33 +0800 Subject: [PATCH 333/352] fix: solve duplaction tags problem --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/crd-seed/component/Tags/index.js | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index f6143631..8e808706 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.9.2 + +`2022-04-09` + +- **Fix** + + - 🐞 修复标签页包含重复标签归档的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/286) + ### 1.9.1 `2022-04-05` diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js index 452574c2..48e43aa4 100644 --- a/packages/crd-seed/component/Tags/index.js +++ b/packages/crd-seed/component/Tags/index.js @@ -12,7 +12,6 @@ const Tags = () => { const routeMatch = useMatch(path) || {} const { name } = routeMatch.params || {} - console.log('mapTagsWithArticle', mapTagsWithArticle) return (
    {name || 'Tags'}
    From 314b96eb097e3fd57418de684c5c04fd9a5caf81 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 9 Apr 2022 14:57:47 +0800 Subject: [PATCH 334/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 2 +- packages/create-react-doc/package.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lerna.json b/lerna.json index 5e05df45..d25f25d0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.9.1", + "version": "1.9.2", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 801297f5..44331300 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.9.1", + "version": "1.9.2", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 79fc3162..0d19a692 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.9.1", + "version": "1.9.2", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.9.1", + "crd-scripts": "^1.9.2", "crd-templates": "^1.9.1", "crd-theme": "^1.9.1", "fs-extra": "^5.0.0" From c112b7f28b9c1b2bd71ad0465a7e008563f129a5 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 9 Apr 2022 17:38:09 +0800 Subject: [PATCH 335/352] docs: update link --- README-en.md | 2 +- README.md | 2 +- .../\351\273\230\350\256\244\344\270\273\351\242\230.md" | 2 +- packages/crd-seed/README.md | 2 +- packages/crd-templates/default/README.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README-en.md b/README-en.md index 0d6bced5..2fd0f917 100644 --- a/README-en.md +++ b/README-en.md @@ -47,7 +47,7 @@ Create React Doc provides the official default theme [crd-seed](https://github.c [my blog](http://muyunyun.cn/blog) is based [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed) theme to build。 -![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) +![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.jpg) ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) If you want to customize or share personal themes, you can refer to the [Custom Theme](https://muyunyun.cn/create-react-doc/9f41fc98) chapter. diff --git a/README.md b/README.md index bfd33242..33ca5096 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun [笔者博客](http://muyunyun.cn/blog)使用的是 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed) 主题搭建的。 -![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) +![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.jpg) ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) 如果您想定制化或者分享个人主题, 可以参考[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 diff --git "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 3dab66b6..8c092f4a 100644 --- "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -14,7 +14,7 @@ create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/creat 使用该主题搭建的项目有: * [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) - * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) + * ![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.jpg) * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) * [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) diff --git a/packages/crd-seed/README.md b/packages/crd-seed/README.md index 5baeff58..96c7d883 100644 --- a/packages/crd-seed/README.md +++ b/packages/crd-seed/README.md @@ -10,7 +10,7 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun 使用该主题搭建的项目有: * [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) - * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) + * ![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.jpg) * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) * [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) diff --git a/packages/crd-templates/default/README.md b/packages/crd-templates/default/README.md index 2b3244b3..1435cd62 100644 --- a/packages/crd-templates/default/README.md +++ b/packages/crd-templates/default/README.md @@ -38,7 +38,7 @@ Create React Doc 是一个使用 React 的 markdown 文档站点生成工具。 使用该主题搭建的站点 * [blog](http://muyunyun.cn/blog) - * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) + * ![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.jpg) * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) * [diana](https://muyunyun.cn/diana/) From d3530f41554a3f87e14708ea411431a890a4cd27 Mon Sep 17 00:00:00 2001 From: MuYunyun Date: Sun, 6 Nov 2022 16:41:35 +0800 Subject: [PATCH 336/352] try use StackBlitz --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 33ca5096..473fe715 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ abbrlink: s31w9gd1 [Create React Doc](https://github.com/MuYunyun/create-react-doc) 是一个使用 React 的 markdown 文档站点生成工具。就像 [create-react-app](https://github.com/facebook/create-react-app) 一样,开发者可以使用 Create React Doc 来开发、部署文档或者博客站点而无需关心额外的环境配置信息。 +try stackblitz. + ## 特性 * 建站理念: `文件即站点` (Files as a Site)。 From 09ae79dfcae8032350a623c665a8f16ad712f014 Mon Sep 17 00:00:00 2001 From: MuYunyun Date: Sun, 6 Nov 2022 16:45:39 +0800 Subject: [PATCH 337/352] try stackblitz --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 473fe715..33ca5096 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,6 @@ abbrlink: s31w9gd1 [Create React Doc](https://github.com/MuYunyun/create-react-doc) 是一个使用 React 的 markdown 文档站点生成工具。就像 [create-react-app](https://github.com/facebook/create-react-app) 一样,开发者可以使用 Create React Doc 来开发、部署文档或者博客站点而无需关心额外的环境配置信息。 -try stackblitz. - ## 特性 * 建站理念: `文件即站点` (Files as a Site)。 From bde4e78ec28da2e4b8780cece63fde72522b40df Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 10 Nov 2022 04:56:09 +0800 Subject: [PATCH 338/352] feat: support comments module --- README.md | 19 ++++---- config.yml | 8 +++- ...30\350\256\244\344\270\273\351\242\230.md" | 41 +++++++++------- packages/crd-seed/layout/index.js | 38 +++++++++++++-- packages/crd-seed/layout/index.less | 8 +++- packages/crd-seed/package.json | 1 + yarn.lock | 48 +++++++++++++++++++ 7 files changed, 131 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 33ca5096..79e25724 100644 --- a/README.md +++ b/README.md @@ -40,20 +40,23 @@ abbrlink: s31w9gd1 ## 主题 -create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题支持以下特性: +create-react-doc 提供了默认主题 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。 -* 适配移动、PC 端展示。 -* 支持暗黑模式。 -* 支持文档内嵌展示 codepen、codesandbox 案例。 -* 支持与 GitHub 文档编辑能力联动。 -* 支持配置展示标签以自定义聚合文章内容。 +该主题支持以下特性: -[笔者博客](http://muyunyun.cn/blog)使用的是 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed) 主题搭建的。 +- [x] 适配网页/移动端展示。 +- [x] 支持暗黑模式。 +- [x] 支持标签页自定义聚合文章内容。 +- [x] 内置评论模块。 +- [x] 支持内嵌展示 codepen、codesandbox 案例。 +- [x] 支持从文档页快速跳转到对应的 Github 文档页进行在线编辑。 + +该主题效果可以参考[笔者博客](http://muyunyun.cn/blog)。 ![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.jpg) ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) -如果您想定制化或者分享个人主题, 可以参考[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 +如果您想定制化或者分享个人主题,可以参考[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)章节。 ## 快速上手 diff --git a/config.yml b/config.yml index aeac25b6..d9b0e75d 100644 --- a/config.yml +++ b/config.yml @@ -43,5 +43,11 @@ inject: injectLogic/index.js # Use abbrlink abbrlink: true -# show Tags in head +# Show Tags in head tags: true + +# Config comment section +comment: + # Giscus Config, The config parameter that's supported can be seen in [giscus-component](https://github.com/giscus/giscus-component#documentation). + GiscusConfig: + id: MDEwOlJlcG9zaXRvcnkyNjgwMTE4MzA= diff --git "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 8c092f4a..0772a6db 100644 --- "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -4,12 +4,16 @@ abbrlink: 85li8wdd ## 默认主题 -create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题有以下特性: +create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。 -* 适配移动、PC 多端展示。 -* 支持暗黑模式。 -* 文档支持内嵌 codepen、codesandbox。 -* GitHub 联动。 +该主题支持以下特性: + +- [x] 适配网页/移动端展示。 +- [x] 支持暗黑模式。 +- [x] 支持标签页自定义聚合文章内容。 +- [x] 内置评论模块。 +- [x] 支持内嵌展示 codepen、codesandbox 案例。 +- [x] 支持从文档页快速跳转到对应的 Github 文档页进行在线编辑。 使用该主题搭建的项目有: @@ -26,18 +30,19 @@ create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/creat 它支持配置的属性如下: -| 属性名 | 作用 | 类型 | 默认 | -| :------------: | :----------------------------------: | :------------------: | :------: | -| title | 站点名 | string | | -| menu | 作为站点菜单的文件/文件夹路径 | string[] | | -| menuOpenKeys | 默认展开菜单的文件夹路径 | string | | -| user | Github 用户名 | string | | -| repo | Github 项目名 | string | | -| language | 站点语言 | en \| zh-cn | en | -| github-ribbons | 是否在右上角显示 github 丝带 | boolean | false | -| theme | 使用主题 | string | crd-seed | -| devTheme | 开发自定义主题时, 需设置其为 true | string | ./index | -| seo | 是否开启 SEO 优化 | { google?: boolean } | | -| domain | SEO 优化的站点域名, 用于生成 sitemap | string | | +| 属性名 | 作用 | 类型 | 默认 | +| :------------: | :----------------------------------: | :---------------------------------------------------------------------------------: | :------: | +| title | 站点名 | string | | +| menu | 作为站点菜单的文件/文件夹路径 | string[] | | +| menuOpenKeys | 默认展开菜单的文件夹路径 | string | | +| user | Github 用户名 | string | | +| repo | Github 项目名 | string | | +| language | 站点语言 | en \| zh-cn | en | +| github-ribbons | 是否在右上角显示 github 丝带 | boolean | false | +| theme | 使用主题 | string | crd-seed | +| devTheme | 开发自定义主题时, 需设置其为 true | string | ./index | +| seo | 是否开启 SEO 优化 | { google?: boolean } | | +| domain | SEO 优化的站点域名, 用于生成 sitemap | string | | +| comment | 开启评论区,并进行相关配置 | { GiscusConfig: [Props](https://github.com/giscus/giscus-component#documentation) } | | 详细用法可以参考 [config.yml](https://github.com/MuYunyun/blog/blob/main/config.yml)。 \ No newline at end of file diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 9667a6ec..63d55575 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -2,6 +2,7 @@ import * as React from 'react' import { Routes, Link, Route, Navigate, useLocation } from 'react-router-dom' import cx from 'classnames' import { ifDev, ifProd, ifPrerender } from 'crd-client-utils' +const Giscus = require('@giscus/react') import Menu from '../component/Menu' import Icon from '../component/Icon' import Affix from '../component/Affix' @@ -15,7 +16,7 @@ import logo from '../crd.logo.svg' import styles from './index.less' import '../style/mobile.less' -const { useState, useEffect } = React +const { useState, useEffect, useMemo } = React const SubMenu = Menu.SubMenu function BasicLayout({ @@ -30,8 +31,10 @@ function BasicLayout({ branch = 'main', language = 'en', menuOpenKeys, - tags + tags, + comment } = DOCSCONFIG || {} + const [inlineCollapsed, setInlineCollapsed] = useState(true) const [selectedKey, setSelectedKey] = useState('') const curOpenKeys = getOpenSubMenuKeys({ @@ -150,7 +153,7 @@ function BasicLayout({ ) } /** - * this section is to show article's relevant information + * This section is to show article's relevant information * such as edit in github and so on. */ const renderPageHeader = () => { @@ -176,8 +179,34 @@ function BasicLayout({
    ) } + + /** + * This section is to render comment area. + * Every pathname should has its own comment module. + */ + const renderComment = useMemo(() => { + return + }, [pathname]) + /** - * this section is to show article's relevant information + * This section is to show article's relevant information * such as edit in created time、edited time and so on. */ const renderPageFooter = () => { @@ -283,6 +312,7 @@ function BasicLayout({ {/* Todo: follow up how to use Redirect to back up the rest of route. */} {/* */} + {comment?.GiscusConfig ? renderComment : null} {renderPageFooter()}
    ) diff --git a/packages/crd-seed/layout/index.less b/packages/crd-seed/layout/index.less index 9f4a67d2..9b4f8c51 100644 --- a/packages/crd-seed/layout/index.less +++ b/packages/crd-seed/layout/index.less @@ -117,4 +117,10 @@ .contentNoMenu { min-height: 400px; -} \ No newline at end of file +} + +giscus-widget { + display: flex; + margin: auto; + max-width: 940px; +} diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index bb6dff57..51e765ef 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -4,6 +4,7 @@ "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { + "@giscus/react": "^2.2.2", "crd-client-utils": "^1.8.2", "react-router-dom": "^6.3.0", "react-switch": "^5.0.1" diff --git a/yarn.lock b/yarn.lock index 51728f66..fc71308b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1254,6 +1254,13 @@ unique-filename "^1.1.1" which "^1.3.1" +"@giscus/react@^2.2.2": + version "2.2.2" + resolved "https://registry.npmjs.org/@giscus/react/-/react-2.2.2.tgz#3b06c03bea6965ccbc6d26bd3abe038d91fb4cfc" + integrity sha512-UXU2pzJEnsjEh36//UlqmWd7j3FJTGL7ijZIaijwbrsERtzkPkRhOkJ7eqRytCOdpcJSji3XX07/5rPGknmm3w== + dependencies: + giscus "^1.2.2" + "@inquirer/core@^0.0.13-alpha.0": version "0.0.13-alpha.0" resolved "https://registry.npmjs.org/@inquirer/core/-/core-0.0.13-alpha.0.tgz#374e901cc2aff56fc3f565c2fde5d5053145035f" @@ -1962,6 +1969,11 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.4.0": + version "1.4.2" + resolved "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.2.tgz#65d659e89d1a7e2f4f2b547182aef0a224f4adb7" + integrity sha512-VMOxsWh/QDwrxPsgkSQnuZ+8mfNy1OTjzzUdLBvvZtpahwPTHTeVZ51RZRqO4xfKVrR+btIPA8D01IL3xeG66w== + "@mdx-js/loader@^1.6.22": version "1.6.22" resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" @@ -2315,6 +2327,11 @@ resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== +"@types/trusted-types@^2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" + integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== + "@types/uglify-js@*": version "3.11.1" resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb" @@ -5943,6 +5960,13 @@ gh-pages@^3.1.0: fs-extra "^8.1.0" globby "^6.1.0" +giscus@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/giscus/-/giscus-1.2.2.tgz#b186ede8bba56869f2a1b902031c54d528662677" + integrity sha512-H71M3V5K/mmWr5/OwCMCH+s7Z2wVT6uQ1AXe5B0f0jjAGvJ9unAklfp4cNJU5zamjDdMZFVFi/9xhhbHIG3ZTQ== + dependencies: + lit "^2.4.1" + git-raw-commits@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" @@ -7487,6 +7511,30 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= +lit-element@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz#d148ab6bf4c53a33f707a5168e087725499e5f2b" + integrity sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ== + dependencies: + "@lit/reactive-element" "^1.3.0" + lit-html "^2.2.0" + +lit-html@^2.2.0, lit-html@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/lit-html/-/lit-html-2.4.0.tgz#b510430f39a56ec959167ed1187241a4e3ab1574" + integrity sha512-G6qXu4JNUpY6aaF2VMfaszhO9hlWw0hOTRFDmuMheg/nDYGB+2RztUSOyrzALAbr8Nh0Y7qjhYkReh3rPnplVg== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/lit/-/lit-2.4.1.tgz#21251ac14eb1ec8ca7cd15c9ac3564359809f7b5" + integrity sha512-qohSgLiyN1cFnJG26dIiY03S4F49857A0AHQfnS0zYtnUVnD2MFvx+UT52rtXsIuNFQrnUupX+zyGSATlk1f/A== + dependencies: + "@lit/reactive-element" "^1.4.0" + lit-element "^3.2.0" + lit-html "^2.4.0" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" From 69692c60760b6939a18fbe08819b95b896902de2 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 10 Nov 2022 13:28:41 +0800 Subject: [PATCH 339/352] fix: adjust config for giscus --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index d9b0e75d..52f56436 100644 --- a/config.yml +++ b/config.yml @@ -50,4 +50,4 @@ tags: true comment: # Giscus Config, The config parameter that's supported can be seen in [giscus-component](https://github.com/giscus/giscus-component#documentation). GiscusConfig: - id: MDEwOlJlcG9zaXRvcnkyNjgwMTE4MzA= + repoId: MDEwOlJlcG9zaXRvcnkyNjgwMTE4MzA= From 6e3578ee760999e182d1e2299a2959628e271bce Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 10 Nov 2022 13:43:55 +0800 Subject: [PATCH 340/352] docs: update changelog --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 8e808706..87c203ef 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.10.0 + +`2022-11-10` + +- **Feature** + + - 🚀 主题内置评论模块,支持在 [config.yml](https://muyunyun.cn/create-react-doc/85li8wdd) 配置开启评论模块。 + ### 1.9.2 `2022-04-09` From b1d4bd3774edcc7ee512c181c9cc85b8359f6855 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Thu, 10 Nov 2022 13:47:09 +0800 Subject: [PATCH 341/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- packages/crd-templates/package.json | 2 +- packages/create-react-doc/package.json | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lerna.json b/lerna.json index d25f25d0..24d3e39a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.9.2", + "version": "1.10.0", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 51e765ef..a1402690 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.9.1", + "version": "1.10.0", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-templates/package.json b/packages/crd-templates/package.json index 4c9d619d..fcc5d503 100644 --- a/packages/crd-templates/package.json +++ b/packages/crd-templates/package.json @@ -1,6 +1,6 @@ { "name": "crd-templates", - "version": "1.9.1", + "version": "1.10.0", "description": "Default Templates with Create React Doc", "repository": { "type": "git", diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 0d19a692..b9e8ad0c 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.9.2", + "version": "1.10.0", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -27,7 +27,7 @@ "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", "crd-scripts": "^1.9.2", - "crd-templates": "^1.9.1", + "crd-templates": "^1.10.0", "crd-theme": "^1.9.1", "fs-extra": "^5.0.0" }, From c0c661326905ccd5f80e920f1f8d5c78f48f66f0 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 11 Nov 2022 00:48:08 +0800 Subject: [PATCH 342/352] chore: update gh-pages.yml --- .github/workflows/gh-pages.yml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index bc4ef7c5..76c3afbb 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,38 +1,44 @@ -name: github pages +name: GitHub Pages + on: push: branches: - main - - feature/seo + pull_request: jobs: deploy: - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 + permissions: + contents: write + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup Node - uses: actions/setup-node@v2.1.4 + uses: actions/setup-node@v3 with: - node-version: '12.x' + node-version: '14' - name: Get yarn cache id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" + run: echo "YARN_CACHE_DIR=$(yarn cache dir)" >> "${GITHUB_OUTPUT}" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-website-${{ hashFiles('**/yarn.lock') }} + path: ${{ steps.yarn-cache.outputs.YARN_CACHE_DIR }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | - ${{ runner.os }}-website- + ${{ runner.os }}-yarn- - run: yarn install --frozen-lockfile - run: yarn build - name: Deploy uses: peaceiris/actions-gh-pages@v3 + if: ${{ github.ref == 'refs/heads/main' }} with: github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: .crd-dist \ No newline at end of file + publish_dir: .crd-dist From 8453c72f9035fecdd9b9f792317c19444797b31d Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 11 Nov 2022 01:26:25 +0800 Subject: [PATCH 343/352] fix: update config.yml --- config.yml | 1 + packages/crd-seed/layout/index.js | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 52f56436..9d7f949a 100644 --- a/config.yml +++ b/config.yml @@ -51,3 +51,4 @@ comment: # Giscus Config, The config parameter that's supported can be seen in [giscus-component](https://github.com/giscus/giscus-component#documentation). GiscusConfig: repoId: MDEwOlJlcG9zaXRvcnkyNjgwMTE4MzA= + categoryId: DIC_kwDOD_mJNs4CSd1W diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 63d55575..c755a7df 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -190,7 +190,6 @@ function BasicLayout({ id="comments" repo={`${user}/${repo}`} category="General" - categoryId="DIC_kwDOD_mJNs4CSd1W" mapping="pathname" strict="0" reactionsEnabled="1" From f181ae0e3f1812d816ce1e0108e6ad05f7f797ef Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 19 Nov 2022 01:09:56 +0800 Subject: [PATCH 344/352] fix: https://github.com/giscus/giscus-component/issues/783 --- .../\346\233\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/crd-seed/package.json | 2 +- yarn.lock | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 87c203ef..9ec0d777 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.10.1 + +`2022-11-19` + +- **Fix** + + - 🐞 修复 @giscus/react 包结构变更导致站点崩溃的问题。[issue](https://github.com/giscus/giscus-component/issues/783) + ### 1.10.0 `2022-11-10` diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index a1402690..7725a856 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -4,7 +4,7 @@ "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { - "@giscus/react": "^2.2.2", + "@giscus/react": "2.2.2", "crd-client-utils": "^1.8.2", "react-router-dom": "^6.3.0", "react-switch": "^5.0.1" diff --git a/yarn.lock b/yarn.lock index fc71308b..2ac96f40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1254,7 +1254,7 @@ unique-filename "^1.1.1" which "^1.3.1" -"@giscus/react@^2.2.2": +"@giscus/react@2.2.2": version "2.2.2" resolved "https://registry.npmjs.org/@giscus/react/-/react-2.2.2.tgz#3b06c03bea6965ccbc6d26bd3abe038d91fb4cfc" integrity sha512-UXU2pzJEnsjEh36//UlqmWd7j3FJTGL7ijZIaijwbrsERtzkPkRhOkJ7eqRytCOdpcJSji3XX07/5rPGknmm3w== From e3f7e00f13f86cc24243c024b5949df8082e7e4e Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 19 Nov 2022 01:29:24 +0800 Subject: [PATCH 345/352] chore: publish --- lerna.json | 2 +- packages/crd-seed/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 24d3e39a..f85fc5f1 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.10.0", + "version": "1.10.1", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 7725a856..0b9e581a 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.10.0", + "version": "1.10.1", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { From c6cfff0c7ca39eb73d4c9de6dc28e17d878e6490 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 19 Nov 2022 16:13:24 +0800 Subject: [PATCH 346/352] chore: use esbuild instead of babel --- packages/crd-scripts/package.json | 1 + .../src/conf/webpack.config.dev.js | 17 +- yarn.lock | 168 ++++++++++++++++++ 3 files changed, 184 insertions(+), 2 deletions(-) diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 44331300..52a3541d 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -31,6 +31,7 @@ "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", "detect-port": "^1.2.2", + "esbuild-loader": "^2.20.0", "eslint": "^7.11.0", "eslint-loader": "^4.0.2", "file-loader": "^1.1.11", diff --git a/packages/crd-scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js index def68b66..8603ed97 100644 --- a/packages/crd-scripts/src/conf/webpack.config.dev.js +++ b/packages/crd-scripts/src/conf/webpack.config.dev.js @@ -39,9 +39,22 @@ module.exports = function (cmd) { }, }, { - loader: require.resolve('babel-loader'), - options: require('../../.babelrc'), // eslint-disable-line + loader: 'esbuild-loader', + options: { + loader: 'jsx', + target: 'es2015', + // This will make esbuild automatically generate import statements, + // making the ProviderPlugin unnecesary if used only for "react". + // Note that this option makes sense only when used in conjuction + // with React >16.40.0 || >17 + // https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html + jsx: 'automatic', + } }, + // { + // loader: require.resolve('babel-loader'), + // options: require('../../.babelrc'), // eslint-disable-line + // }, ], }) // https://ilikekillnerds.com/2018/03/disable-webpack-4-native-json-loader/ diff --git a/yarn.lock b/yarn.lock index 2ac96f40..6775f402 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1164,6 +1164,16 @@ "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" +"@esbuild/android-arm@0.15.14": + version "0.15.14" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.14.tgz#5d0027f920eeeac313c01fd6ecb8af50c306a466" + integrity sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA== + +"@esbuild/linux-loong64@0.15.14": + version "0.15.14" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.14.tgz#1221684955c44385f8af34f7240088b7dc08d19d" + integrity sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg== + "@eslint/eslintrc@^0.2.1": version "0.2.1" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" @@ -4988,6 +4998,146 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +esbuild-android-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.14.tgz#114e55b0d58fb7b45d7fa3d93516bd13fc8869cc" + integrity sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg== + +esbuild-android-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.14.tgz#8541f38a9aacf88e574fb13f5ad4ca51a04c12bb" + integrity sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg== + +esbuild-darwin-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.14.tgz#b40b334db81ff1e3677a6712b23761748a157c57" + integrity sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg== + +esbuild-darwin-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.14.tgz#44b5c1477bb7bdb852dd905e906f68765e2828bc" + integrity sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A== + +esbuild-freebsd-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.14.tgz#8c57315d238690f34b6ed0c94e5cfc04c858247a" + integrity sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA== + +esbuild-freebsd-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.14.tgz#2e92acca09258daa849e635565f52469266f0b7b" + integrity sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg== + +esbuild-linux-32@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.14.tgz#ca5ed3e9dff82df486ddde362d7e00775a597dfd" + integrity sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA== + +esbuild-linux-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.14.tgz#42952e1d08a299d5f573c567639fb37b033befbf" + integrity sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw== + +esbuild-linux-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.14.tgz#0c0d788099703327ec0ae70758cb2639ef6c5d88" + integrity sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg== + +esbuild-linux-arm@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.14.tgz#751a5ca5042cd60f669b07c3bcec3dd6c4f8151c" + integrity sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q== + +esbuild-linux-mips64le@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.14.tgz#da8ac35f2704de0b52bf53a99c12f604fbe9b916" + integrity sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA== + +esbuild-linux-ppc64le@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.14.tgz#a315b5016917429080c3d32e03319f1ff876ac55" + integrity sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w== + +esbuild-linux-riscv64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.14.tgz#9f2e0a935e5086d398fc19c7ff5d217bfefe3e12" + integrity sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q== + +esbuild-linux-s390x@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.14.tgz#53108112faff5a4e1bad17f7b0b0ffa1df4b7efb" + integrity sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw== + +esbuild-loader@^2.20.0: + version "2.20.0" + resolved "https://registry.npmjs.org/esbuild-loader/-/esbuild-loader-2.20.0.tgz#28fcff0142fa7bd227512d69f31e9a6e202bb88f" + integrity sha512-dr+j8O4w5RvqZ7I4PPB4EIyVTd679EBQnMm+JBB7av+vu05Zpje2IpK5N3ld1VWa+WxrInIbNFAg093+E1aRsA== + dependencies: + esbuild "^0.15.6" + joycon "^3.0.1" + json5 "^2.2.0" + loader-utils "^2.0.0" + tapable "^2.2.0" + webpack-sources "^2.2.0" + +esbuild-netbsd-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.14.tgz#5330efc41fe4f1c2bab5462bcfe7a4ffce7ba00a" + integrity sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ== + +esbuild-openbsd-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.14.tgz#ee64944d863e937611fc31adf349e9bb4f5f7eac" + integrity sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA== + +esbuild-sunos-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.14.tgz#29b0b20de6fe6ef50f9fbe533ec20dc4b595f9aa" + integrity sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q== + +esbuild-windows-32@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.14.tgz#05e9b159d664809f7a4a8a68ed048d193457b27d" + integrity sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg== + +esbuild-windows-64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.14.tgz#d5ae086728ab30b72969e40ed0a7a0d9082f2cdd" + integrity sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog== + +esbuild-windows-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.14.tgz#8eb50ab9a0ecaf058593fbad17502749306f801d" + integrity sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw== + +esbuild@^0.15.6: + version "0.15.14" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.15.14.tgz#09202b811f1710363d5088a3401a351351c79875" + integrity sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ== + optionalDependencies: + "@esbuild/android-arm" "0.15.14" + "@esbuild/linux-loong64" "0.15.14" + esbuild-android-64 "0.15.14" + esbuild-android-arm64 "0.15.14" + esbuild-darwin-64 "0.15.14" + esbuild-darwin-arm64 "0.15.14" + esbuild-freebsd-64 "0.15.14" + esbuild-freebsd-arm64 "0.15.14" + esbuild-linux-32 "0.15.14" + esbuild-linux-64 "0.15.14" + esbuild-linux-arm "0.15.14" + esbuild-linux-arm64 "0.15.14" + esbuild-linux-mips64le "0.15.14" + esbuild-linux-ppc64le "0.15.14" + esbuild-linux-riscv64 "0.15.14" + esbuild-linux-s390x "0.15.14" + esbuild-netbsd-64 "0.15.14" + esbuild-openbsd-64 "0.15.14" + esbuild-sunos-64 "0.15.14" + esbuild-windows-32 "0.15.14" + esbuild-windows-64 "0.15.14" + esbuild-windows-arm64 "0.15.14" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -7237,6 +7387,11 @@ jest-worker@^26.3.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" +joycon@^3.0.1: + version "3.1.1" + resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + js-base64@^2.1.9: version "2.6.4" resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" @@ -7337,6 +7492,11 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" +json5@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -12647,6 +12807,14 @@ webpack-sources@^2.1.1: source-list-map "^2.0.1" source-map "^0.6.1" +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + webpack@^5.12.2: version "5.12.2" resolved "https://registry.npmjs.org/webpack/-/webpack-5.12.2.tgz#f79574cdb7a4ef711c5f47f3d189e045a14217e5" From 78834e88b97c9f9f83cff89e39213bb67a65b82a Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 19 Nov 2022 16:56:52 +0800 Subject: [PATCH 347/352] chore: use esbuild instead of babel --- packages/crd-scripts/.babelrc.js | 36 - packages/crd-scripts/package.json | 12 - .../src/conf/webpack.config.dev.js | 4 - .../crd-scripts/src/conf/webpack.config.js | 13 +- .../src/conf/webpack.config.prod.js | 13 +- packages/crd-scripts/src/web/index.js | 1 - packages/leetcode-cli/.babelrc.js | 34 - yarn.lock | 1006 +---------------- 8 files changed, 44 insertions(+), 1075 deletions(-) delete mode 100644 packages/crd-scripts/.babelrc.js delete mode 100644 packages/leetcode-cli/.babelrc.js diff --git a/packages/crd-scripts/.babelrc.js b/packages/crd-scripts/.babelrc.js deleted file mode 100644 index 806a2b7f..00000000 --- a/packages/crd-scripts/.babelrc.js +++ /dev/null @@ -1,36 +0,0 @@ -const babelrc = { - presets: [ - [ - "@babel/preset-env", - { - targets: { - browsers: ["last 2 versions", "ie >= 10"], - }, - }, - ], - ["@babel/preset-react", { - "runtime": "automatic" - }] - ], - plugins: [ - "@babel/plugin-syntax-object-rest-spread", - "@babel/plugin-syntax-dynamic-import", - "@babel/plugin-transform-async-to-generator", - "@babel/plugin-proposal-class-properties", - "@babel/plugin-transform-runtime" - ], - env: { - production: {}, - }, -}; - -if (process.env.NODE_ENV === 'development') { - // 不要包含多余的空格字符和行结束符。 - // 设置为“auto”时,对于大于500KB的输入大小,设置为"true"。 - // https://babeljs.io/docs/usage/api/#options - babelrc.cacheDirectory = true; -} else { - babelrc.compact = true; -} - -module.exports = babelrc diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 52a3541d..98a96b4c 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -4,21 +4,9 @@ "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { - "@babel/cli": "^7.2.3", - "@babel/core": "^7.3.4", - "@babel/plugin-proposal-class-properties": "^7.3.4", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.3.4", - "@babel/plugin-transform-runtime": "^7.3.4", - "@babel/polyfill": "^7.2.5", - "@babel/preset-env": "^7.3.4", - "@babel/preset-react": "^7.0.0", - "@babel/runtime": "^7.3.4", "@mdx-js/loader": "^1.6.22", "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2", "babel-eslint": "^8.0.1", - "babel-loader": "^8.0.5", "chalk": "^4.1.0", "colors-cli": "^1.0.13", "copy-markdown-image-webpack-plugin": "^2.0.0", diff --git a/packages/crd-scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js index 8603ed97..9853e7be 100644 --- a/packages/crd-scripts/src/conf/webpack.config.dev.js +++ b/packages/crd-scripts/src/conf/webpack.config.dev.js @@ -51,10 +51,6 @@ module.exports = function (cmd) { jsx: 'automatic', } }, - // { - // loader: require.resolve('babel-loader'), - // options: require('../../.babelrc'), // eslint-disable-line - // }, ], }) // https://ilikekillnerds.com/2018/03/disable-webpack-4-native-json-loader/ diff --git a/packages/crd-scripts/src/conf/webpack.config.js b/packages/crd-scripts/src/conf/webpack.config.js index 49b4c236..86f4cd4d 100644 --- a/packages/crd-scripts/src/conf/webpack.config.js +++ b/packages/crd-scripts/src/conf/webpack.config.js @@ -65,8 +65,17 @@ module.exports = { test: /\.md$/, use: [ { - loader: require.resolve('babel-loader'), - options: require('../../.babelrc'), // eslint-disable-line + loader: 'esbuild-loader', + options: { + loader: 'jsx', + target: 'es2015', + // This will make esbuild automatically generate import statements, + // making the ProviderPlugin unnecesary if used only for "react". + // Note that this option makes sense only when used in conjuction + // with React >16.40.0 || >17 + // https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html + jsx: 'automatic', + } }, { loader: require.resolve('@mdx-js/loader'), diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index fa229c22..6a83103c 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -46,8 +46,17 @@ module.exports = function (cmd) { }, }, { - loader: require.resolve('babel-loader'), - options: require('../../.babelrc'), // eslint-disable-line + loader: 'esbuild-loader', + options: { + loader: 'jsx', + target: 'es2015', + // This will make esbuild automatically generate import statements, + // making the ProviderPlugin unnecesary if used only for "react". + // Note that this option makes sense only when used in conjuction + // with React >16.40.0 || >17 + // https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html + jsx: 'automatic', + } }, ], }) diff --git a/packages/crd-scripts/src/web/index.js b/packages/crd-scripts/src/web/index.js index 751b1979..ef26ec5b 100644 --- a/packages/crd-scripts/src/web/index.js +++ b/packages/crd-scripts/src/web/index.js @@ -1,7 +1,6 @@ import { hydrate } from 'react-dom' import { renderToString } from 'react-dom/server'; // import { hydrateRoot } from 'react-dom/client' -import '@babel/polyfill' import { ifDev, ifPrerender } from 'crd-client-utils' import RouterRoot from './Router' diff --git a/packages/leetcode-cli/.babelrc.js b/packages/leetcode-cli/.babelrc.js deleted file mode 100644 index c1267455..00000000 --- a/packages/leetcode-cli/.babelrc.js +++ /dev/null @@ -1,34 +0,0 @@ -const babelrc = { - presets: [ - [ - "@babel/preset-env", - { - targets: { - browsers: ["last 2 versions", "ie >= 10"], - }, - }, - ], - "@babel/preset-react", - ], - plugins: [ - "@babel/plugin-syntax-object-rest-spread", - "@babel/plugin-syntax-dynamic-import", - "@babel/plugin-transform-async-to-generator", - "@babel/plugin-proposal-class-properties", - "@babel/plugin-transform-runtime" - ], - env: { - production: {}, - }, -}; - -if (process.env.NODE_ENV === 'development') { - // 不要包含多余的空格字符和行结束符。 - // 设置为“auto”时,对于大于500KB的输入大小,设置为"true"。 - // https://babeljs.io/docs/usage/api/#options - babelrc.cacheDirectory = true; -} else { - babelrc.compact = true; -} - -module.exports = babelrc diff --git a/yarn.lock b/yarn.lock index 6775f402..19ac72c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,23 +2,6 @@ # yarn lockfile v1 -"@babel/cli@^7.2.3": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.12.1.tgz#e08a0b1cb6fcd4b9eb6a606ba5602c5c0fe24a0c" - integrity sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g== - dependencies: - commander "^4.0.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.1.0" - glob "^7.0.0" - lodash "^4.17.19" - make-dir "^2.1.0" - slash "^2.0.0" - source-map "^0.5.0" - optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "^2.1.8" - chokidar "^3.4.0" - "@babel/code-frame@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" @@ -40,11 +23,6 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": - version "7.12.5" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9" - integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg== - "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -67,28 +45,6 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.3.4": - version "7.12.3" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" - integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.1" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.1" - "@babel/parser" "^7.12.3" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/generator@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" @@ -100,7 +56,7 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.12.1", "@babel/generator@^7.12.5": +"@babel/generator@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== @@ -118,84 +74,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-builder-react-jsx-experimental@^7.12.1": - version "7.12.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz#55fc1ead5242caa0ca2875dcb8eed6d311e50f48" - integrity sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.12.1" - "@babel/types" "^7.12.1" - -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.12.1": - version "7.12.5" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" - integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== - dependencies: - "@babel/compat-data" "^7.12.5" - "@babel/helper-validator-option" "^7.12.1" - browserslist "^4.14.5" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" - integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.12.1" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8" - integrity sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.1" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" - integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== - dependencies: - "@babel/types" "^7.12.1" - "@babel/helper-function-name@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" @@ -244,13 +122,6 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== - dependencies: - "@babel/types" "^7.10.4" - "@babel/helper-member-expression-to-functions@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c" @@ -287,27 +158,11 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== - dependencies: - lodash "^4.17.19" - -"@babel/helper-remap-async-to-generator@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" - integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/types" "^7.12.1" - "@babel/helper-replace-supers@^7.12.1": version "7.12.5" resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" @@ -325,13 +180,6 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== - dependencies: - "@babel/types" "^7.12.1" - "@babel/helper-split-export-declaration@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" @@ -339,7 +187,7 @@ dependencies: "@babel/types" "7.0.0-beta.44" -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": +"@babel/helper-split-export-declaration@^7.11.0": version "7.11.0" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== @@ -363,30 +211,6 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== -"@babel/helper-validator-option@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" - integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A== - -"@babel/helper-wrap-function@^7.10.4": - version "7.12.3" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" - integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helpers@^7.12.1": - version "7.12.5" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" - integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== - dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.5" - "@babel/types" "^7.12.5" - "@babel/helpers@^7.12.5": version "7.14.0" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" @@ -423,7 +247,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.12.3", "@babel/parser@^7.12.5": +"@babel/parser@^7.10.4", "@babel/parser@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== @@ -433,72 +257,7 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== -"@babel/plugin-proposal-async-generator-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" - integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.12.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.3.4": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" - integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-dynamic-import@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" - integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-export-namespace-from@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" - integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" - integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" - integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" - integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.12.1": - version "7.12.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz#b1ce757156d40ed79d59d467cb2b154a5c4149ba" - integrity sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.1": +"@babel/plugin-proposal-object-rest-spread@7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== @@ -507,300 +266,20 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-optional-catch-binding@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" - integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" - integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-private-methods@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" - integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" - integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" - integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@7.12.1", "@babel/plugin-syntax-jsx@^7.12.1": +"@babel/plugin-syntax-jsx@7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" - integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-arrow-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" - integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-async-to-generator@^7.12.1", "@babel/plugin-transform-async-to-generator@^7.3.4": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" - integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.12.1" - -"@babel/plugin-transform-block-scoped-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" - integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-block-scoping@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" - integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-classes@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" - integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.10.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" - integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-destructuring@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" - integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" - integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-duplicate-keys@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" - integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-exponentiation-operator@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" - integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-for-of@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" - integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-function-name@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" - integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" - integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" - integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-modules-amd@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" - integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== - dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" - integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== - dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.12.1" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" - integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== - dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-identifier" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" - integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== - dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" - integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - -"@babel/plugin-transform-new-target@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" - integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-object-super@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" - integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/plugin-transform-parameters@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" @@ -808,241 +287,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" - integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-display-name@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" - integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-jsx-development@^7.12.5": - version "7.12.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.5.tgz#677de5b96da310430d6cfb7fee16a1603afa3d56" - integrity sha512-1JJusg3iPgsZDthyWiCr3KQiGs31ikU/mSf2N2dSYEAO0GEImmVUbWf0VoSDGDFTAn5Dj4DUiR6SdIXHY7tELA== - dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.12.1" - -"@babel/plugin-transform-react-jsx-self@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz#ef43cbca2a14f1bd17807dbe4376ff89d714cf28" - integrity sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-jsx-source@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz#d07de6863f468da0809edcf79a1aa8ce2a82a26b" - integrity sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-jsx@^7.12.5": - version "7.12.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.5.tgz#39ede0e30159770561b6963be143e40af3bde00c" - integrity sha512-2xkcPqqrYiOQgSlM/iwto1paPijjsDbUynN13tI6bosDz/jOW3CRzYguIE8wKX32h+msbBM22Dv5fwrFkUOZjQ== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.12.1" - -"@babel/plugin-transform-react-pure-annotations@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" - integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" - integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" - integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-runtime@^7.3.4": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" - integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" - integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" - integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf" - integrity sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" - integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a" - integrity sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-escapes@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" - integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" - integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/polyfill@^7.2.5": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz#1f2d6371d1261bbd961f3c5d5909150e12d0bd96" - integrity sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/preset-env@^7.3.4": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" - integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== - dependencies: - "@babel/compat-data" "^7.12.1" - "@babel/helper-compilation-targets" "^7.12.1" - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.1" - "@babel/plugin-proposal-async-generator-functions" "^7.12.1" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-dynamic-import" "^7.12.1" - "@babel/plugin-proposal-export-namespace-from" "^7.12.1" - "@babel/plugin-proposal-json-strings" "^7.12.1" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.12.1" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-async-to-generator" "^7.12.1" - "@babel/plugin-transform-block-scoped-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.1" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-computed-properties" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-dotall-regex" "^7.12.1" - "@babel/plugin-transform-duplicate-keys" "^7.12.1" - "@babel/plugin-transform-exponentiation-operator" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-function-name" "^7.12.1" - "@babel/plugin-transform-literals" "^7.12.1" - "@babel/plugin-transform-member-expression-literals" "^7.12.1" - "@babel/plugin-transform-modules-amd" "^7.12.1" - "@babel/plugin-transform-modules-commonjs" "^7.12.1" - "@babel/plugin-transform-modules-systemjs" "^7.12.1" - "@babel/plugin-transform-modules-umd" "^7.12.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" - "@babel/plugin-transform-new-target" "^7.12.1" - "@babel/plugin-transform-object-super" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-property-literals" "^7.12.1" - "@babel/plugin-transform-regenerator" "^7.12.1" - "@babel/plugin-transform-reserved-words" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-sticky-regex" "^7.12.1" - "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/plugin-transform-typeof-symbol" "^7.12.1" - "@babel/plugin-transform-unicode-escapes" "^7.12.1" - "@babel/plugin-transform-unicode-regex" "^7.12.1" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.1" - core-js-compat "^3.6.2" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.4" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.0.0": - version "7.12.5" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.5.tgz#d45625f65d53612078a43867c5c6750e78772c56" - integrity sha512-jcs++VPrgyFehkMezHtezS2BpnUlR7tQFAyesJn1vGTO9aTFZrgIQrA5YydlTwxbcjMwkFY6i04flCigRRr3GA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-react-display-name" "^7.12.1" - "@babel/plugin-transform-react-jsx" "^7.12.5" - "@babel/plugin-transform-react-jsx-development" "^7.12.5" - "@babel/plugin-transform-react-jsx-self" "^7.12.1" - "@babel/plugin-transform-react-jsx-source" "^7.12.1" - "@babel/plugin-transform-react-pure-annotations" "^7.12.1" - "@babel/runtime-corejs3@^7.10.2": version "7.12.5" resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" @@ -1051,7 +295,7 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.4", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2": version "7.12.5" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== @@ -1109,7 +353,7 @@ invariant "^2.2.0" lodash "^4.2.0" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5": +"@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5": version "7.12.5" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095" integrity sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA== @@ -1147,7 +391,7 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.4.4": +"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5": version "7.12.6" resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz#ae0e55ef1cce1fbc881cd26f8234eb3e657edc96" integrity sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA== @@ -2036,13 +1280,6 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nicolo-ribaudo/chokidar-2@^2.1.8": - version "2.1.8" - resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz#eef8d9b47e8dc589499f14d656e8d2dd978c3d14" - integrity sha512-FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA== - dependencies: - chokidar "2.1.8" - "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" @@ -2757,14 +1994,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -3017,17 +2246,6 @@ babel-eslint@^8.0.1: eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" -babel-loader@^8.0.5: - version "8.1.0" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - babel-plugin-apply-mdx-type-prop@1.6.22: version "1.6.22" resolved "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" @@ -3036,13 +2254,6 @@ babel-plugin-apply-mdx-type-prop@1.6.22: "@babel/helper-plugin-utils" "7.10.4" "@mdx-js/util" "1.6.22" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-extract-import-names@1.6.22: version "1.6.22" resolved "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" @@ -3115,11 +2326,6 @@ binary-extensions@^1.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== -binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== - bindings@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -3198,13 +2404,6 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: version "1.7.7" resolved "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" @@ -3224,7 +2423,7 @@ browserslist@^4.0.0: escalade "^3.1.1" node-releases "^1.1.69" -browserslist@^4.14.5, browserslist@^4.14.6: +browserslist@^4.14.5: version "4.14.6" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.14.6.tgz#97702a9c212e0c6b6afefad913d3a1538e348457" integrity sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A== @@ -3550,7 +2749,7 @@ chardet@^0.7.0: resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chokidar@2.1.8, chokidar@^2.1.8: +chokidar@^2.1.8: version "2.1.8" resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -3569,21 +2768,6 @@ chokidar@2.1.8, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.0: - version "3.4.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" - integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.1.2" - chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -3862,7 +3046,7 @@ commander@^2.12.2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.0.1, commander@^4.1.1: +commander@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== @@ -4058,7 +3242,7 @@ conventional-recommended-bump@^5.0.0: meow "^4.0.0" q "^1.5.1" -convert-source-map@^1.1.0, convert-source-map@^1.7.0: +convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -4114,24 +3298,11 @@ copy-template-dir@^1.3.0: readdirp "^2.0.0" run-parallel "^1.1.4" -core-js-compat@^3.6.2: - version "3.7.0" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz#8479c5d3d672d83f1f5ab94cf353e57113e065ed" - integrity sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg== - dependencies: - browserslist "^4.14.6" - semver "7.0.0" - core-js-pure@^3.0.0: version "3.7.0" resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.7.0.tgz#28a57c861d5698e053f0ff36905f7a3301b4191e" integrity sha512-EZD2ckZysv8MMt4J6HSvS9K2GdtlZtdBncKAmF9lr2n0c9dJUaUN88PSTjvgwCgQPWKTkERXITgS6JJRAnljtg== -core-js@^2.6.5: - version "2.6.11" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -5745,13 +4916,6 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -5765,15 +4929,6 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" @@ -5956,11 +5111,6 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -5984,11 +5134,6 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -6174,7 +5319,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@~5.1.0: +glob-parent@^5.0.0: version "5.1.1" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -7031,13 +6176,6 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -7177,7 +6315,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -7201,11 +6339,6 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - is-obj@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -7433,11 +6566,6 @@ jsesc@^2.5.1: resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -7751,7 +6879,7 @@ loader-utils@2.0.0, loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.4.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -7940,7 +7068,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0, make-dir@^2.1.0: +make-dir@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -8392,7 +7520,7 @@ mkdirp@0.3.x: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -8641,7 +7769,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -8803,7 +7931,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1: +object.assign@^4.1.1: version "4.1.2" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -9342,11 +8470,6 @@ performance-now@^2.1.0: resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -10548,13 +9671,6 @@ readdirp@^2.0.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -10602,30 +9718,11 @@ reduce-function-call@^1.0.1: dependencies: balanced-match "^1.0.0" -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -10652,30 +9749,6 @@ regexpp@^3.1.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - rehype-katex@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/rehype-katex/-/rehype-katex-5.0.0.tgz#b556f24fde918f28ba1cb642ea71c7e82f3373d7" @@ -10889,7 +9962,7 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2: version "1.18.1" resolved "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== @@ -11093,11 +10166,6 @@ selfsigned@^1.10.7: resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -12077,13 +11145,6 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -12281,29 +11342,6 @@ unherit@^1.0.4: inherits "^2.0.0" xtend "^4.0.0" -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - unified@9.2.0: version "9.2.0" resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" From 321923b1b17dc711a54c76cdc187107cadf37b2b Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 19 Nov 2022 17:11:31 +0800 Subject: [PATCH 348/352] docs: update changelog --- "docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 9ec0d777..ce46c6ae 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,7 +6,7 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 -### 1.10.1 +### 1.10.2 `2022-11-19` @@ -14,6 +14,10 @@ abbrlink: 179nqpxt - 🐞 修复 @giscus/react 包结构变更导致站点崩溃的问题。[issue](https://github.com/giscus/giscus-component/issues/783) +- **Enhancement** + + - 🎈 使用 esbuild 代替 babel-loader 进行打包构建。[issue](https://github.com/MuYunyun/create-react-doc/issues/337) + ### 1.10.0 `2022-11-10` From e703c35acf9ba87c4e8f9857605718ae91622d2c Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sat, 19 Nov 2022 17:12:26 +0800 Subject: [PATCH 349/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 2 +- packages/create-react-doc/package.json | 4 ++-- packages/leetcode-cli/package.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lerna.json b/lerna.json index f85fc5f1..a3a38f52 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.10.1", + "version": "1.10.2", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index 98a96b4c..fb6a0cc9 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.9.2", + "version": "1.10.2", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index b9e8ad0c..229f7c1b 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.10.0", + "version": "1.10.2", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,7 +26,7 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.9.2", + "crd-scripts": "^1.10.2", "crd-templates": "^1.10.0", "crd-theme": "^1.9.1", "fs-extra": "^5.0.0" diff --git a/packages/leetcode-cli/package.json b/packages/leetcode-cli/package.json index bb118dff..743738e5 100644 --- a/packages/leetcode-cli/package.json +++ b/packages/leetcode-cli/package.json @@ -1,6 +1,6 @@ { "name": "crd-leetcode-cli", - "version": "1.5.0", + "version": "1.10.2", "description": "Generate leetcode table autoly", "bin": { "leetcode": "./src/cli.js" From c0aefd6b7c0c5fac468ad2bc9055dd63d28d9e06 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 25 Nov 2022 19:27:51 +0800 Subject: [PATCH 350/352] chore: update font style --- ...\264\346\226\260\346\227\245\345\277\227.md" | 8 ++++++++ packages/crd-seed/component/Header/index.less | 1 - .../crd-seed/component/Menu/style/index.less | 1 + packages/crd-seed/component/Tags/index.less | 1 - packages/crd-seed/index.less | 2 +- packages/crd-theme/index.less | 4 ---- packages/crd-theme/markdown/style/default.less | 17 ----------------- packages/crd-theme/markdown/style/index.less | 2 -- 8 files changed, 10 insertions(+), 26 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index ce46c6ae..31e52649 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.10.3 + +`2022-11-26` + +- **Enhancement** + + - 🎈 更新主题字体样式为手写体风格。 + ### 1.10.2 `2022-11-19` diff --git a/packages/crd-seed/component/Header/index.less b/packages/crd-seed/component/Header/index.less index f7da148a..80bc804a 100644 --- a/packages/crd-seed/component/Header/index.less +++ b/packages/crd-seed/component/Header/index.less @@ -106,7 +106,6 @@ margin-bottom: 20px; margin-top: 8px; padding-left: 20px; - font-family: Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif; } .darkMode { diff --git a/packages/crd-seed/component/Menu/style/index.less b/packages/crd-seed/component/Menu/style/index.less index c6951848..42b23e0b 100644 --- a/packages/crd-seed/component/Menu/style/index.less +++ b/packages/crd-seed/component/Menu/style/index.less @@ -11,6 +11,7 @@ transition: background .2s ease-in-out, width .2s ease-in-out; overflow: auto; user-select: none; + font-weight: 600; &-item { // margin: 0 16px 0 15px; diff --git a/packages/crd-seed/component/Tags/index.less b/packages/crd-seed/component/Tags/index.less index 0cd92144..a602fafa 100644 --- a/packages/crd-seed/component/Tags/index.less +++ b/packages/crd-seed/component/Tags/index.less @@ -8,7 +8,6 @@ flex-direction: column; &-title { - font-family: Palatino, Garamond, Times, Georgia, serif; font-size: 24px; font-weight: 400; text-align: center; diff --git a/packages/crd-seed/index.less b/packages/crd-seed/index.less index 7e7d11f1..e1d6c9af 100644 --- a/packages/crd-seed/index.less +++ b/packages/crd-seed/index.less @@ -1,5 +1,5 @@ body { - font-family: Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif; + font-family: cursive, sans-serif; } body, diff --git a/packages/crd-theme/index.less b/packages/crd-theme/index.less index 7e7d11f1..ea4aab5f 100644 --- a/packages/crd-theme/index.less +++ b/packages/crd-theme/index.less @@ -1,7 +1,3 @@ -body { - font-family: Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif; -} - body, html { position: relative; diff --git a/packages/crd-theme/markdown/style/default.less b/packages/crd-theme/markdown/style/default.less index 4f945c55..06845f87 100644 --- a/packages/crd-theme/markdown/style/default.less +++ b/packages/crd-theme/markdown/style/default.less @@ -1,24 +1,7 @@ code { - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; word-wrap: normal; } -// code:not(.hljs) { -// padding: 0.2em 0.4em; -// margin: 0; -// font-size: 85%; -// background-color: rgba(27, 31, 35, 0.07); -// border-radius: 3px; -// } - -// code.hljs { -// padding: 16px; -// font-size: 95%; -// line-height: 1.5; -// display: block; -// text-shadow: 0 1px #fff; -// } - pre { max-height: 35em; position: relative; diff --git a/packages/crd-theme/markdown/style/index.less b/packages/crd-theme/markdown/style/index.less index 68409d15..57bd9df9 100644 --- a/packages/crd-theme/markdown/style/index.less +++ b/packages/crd-theme/markdown/style/index.less @@ -1,7 +1,6 @@ .markdown { padding: 0 40px 20px 40px; margin: 0 auto; - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 14px; line-height: 1.5; word-wrap: break-word; @@ -31,5 +30,4 @@ margin-bottom: 20px; margin-top: 8px; padding-left: 20px; - font-family: Lato,Helvetica Neue For Number,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif; } From 64e22add5834f93a1e7be133618818af0f58f24a Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Fri, 25 Nov 2022 20:05:07 +0800 Subject: [PATCH 351/352] chore: publish --- lerna.json | 2 +- packages/crd-scripts/package.json | 4 ++-- packages/crd-seed/package.json | 2 +- packages/crd-theme/package.json | 2 +- packages/create-react-doc/package.json | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lerna.json b/lerna.json index a3a38f52..7cf2643e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.10.2", + "version": "1.10.3", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json index fb6a0cc9..485fef65 100644 --- a/packages/crd-scripts/package.json +++ b/packages/crd-scripts/package.json @@ -1,6 +1,6 @@ { "name": "crd-scripts", - "version": "1.10.2", + "version": "1.10.3", "description": "Scripts using with Create React Doc", "main": "index.js", "dependencies": { @@ -14,7 +14,7 @@ "crd-client-utils": "^1.8.2", "crd-generator-sitemap": "^1.3.4", "crd-prerender-spa-plugin": "^0.2.0", - "crd-theme": "^1.9.1", + "crd-theme": "^1.10.3", "crd-utils": "^1.5.0", "css-loader": "^0.28.7", "css-minimizer-webpack-plugin": "^1.2.0", diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json index 0b9e581a..e1afb6f5 100644 --- a/packages/crd-seed/package.json +++ b/packages/crd-seed/package.json @@ -1,6 +1,6 @@ { "name": "crd-seed", - "version": "1.10.1", + "version": "1.10.3", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json index 60aaa9d5..ac503dc7 100644 --- a/packages/crd-theme/package.json +++ b/packages/crd-theme/package.json @@ -1,6 +1,6 @@ { "name": "crd-theme", - "version": "1.9.1", + "version": "1.10.3", "description": "Default Theme with Create React Doc", "main": "index.js", "dependencies": { diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 229f7c1b..079a9bb2 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -1,6 +1,6 @@ { "name": "create-react-doc", - "version": "1.10.2", + "version": "1.10.3", "description": "Fast static generated site. Just write markdown file.", "homepage": "", "bin": { @@ -26,9 +26,9 @@ "dependencies": { "@inquirer/input": "^0.0.13-alpha.0", "commander": "^2.12.2", - "crd-scripts": "^1.10.2", + "crd-scripts": "^1.10.3", "crd-templates": "^1.10.0", - "crd-theme": "^1.9.1", + "crd-theme": "^1.10.3", "fs-extra": "^5.0.0" }, "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199" From 29bdb6bff9c33482fd62c24311be80e5946a589a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 19:20:15 +0000 Subject: [PATCH 352/352] chore(deps): bump @inquirer/input from 0.0.13-alpha.0 to 1.2.14 Bumps [@inquirer/input](https://github.com/SBoudrias/Inquirer.js) from 0.0.13-alpha.0 to 1.2.14. - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/@inquirer/input@0.0.13-alpha.0...@inquirer/input@1.2.14) --- updated-dependencies: - dependency-name: "@inquirer/input" dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- packages/create-react-doc/package.json | 2 +- yarn.lock | 146 +++++++++++++++++++------ 2 files changed, 116 insertions(+), 32 deletions(-) diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json index 079a9bb2..fa0f301a 100644 --- a/packages/create-react-doc/package.json +++ b/packages/create-react-doc/package.json @@ -24,7 +24,7 @@ }, "license": "MIT", "dependencies": { - "@inquirer/input": "^0.0.13-alpha.0", + "@inquirer/input": "^1.2.14", "commander": "^2.12.2", "crd-scripts": "^1.10.3", "crd-templates": "^1.10.0", diff --git a/yarn.lock b/yarn.lock index 19ac72c5..bee22f44 100644 --- a/yarn.lock +++ b/yarn.lock @@ -515,28 +515,39 @@ dependencies: giscus "^1.2.2" -"@inquirer/core@^0.0.13-alpha.0": - version "0.0.13-alpha.0" - resolved "https://registry.npmjs.org/@inquirer/core/-/core-0.0.13-alpha.0.tgz#374e901cc2aff56fc3f565c2fde5d5053145035f" - integrity sha512-vIXwLW793Z7VUZEfgS9GuEaxwxa4e+OU5TjrZGbkPb4QRnJAhRGgsuAizNgGltKxTRdpn+UD0qloCaAnHPOMbQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-spinners "^2.2.0" - cli-width "^3.0.0" - lodash "^4.17.19" - mute-stream "^0.0.8" - run-async "^2.3.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -"@inquirer/input@^0.0.13-alpha.0": - version "0.0.13-alpha.0" - resolved "https://registry.npmjs.org/@inquirer/input/-/input-0.0.13-alpha.0.tgz#ea2eb290723016fdf195ebe0d6e02a46ad266320" - integrity sha512-Pjc+WreJI0L3HRqGPSIWqdUIRSogKN/mznh1JW8VqEQHCyQ30vJtN7hePylmdoppLf9Np1pe3rfThl/wcAv1og== - dependencies: - "@inquirer/core" "^0.0.13-alpha.0" - chalk "^4.1.0" +"@inquirer/core@^5.1.1": + version "5.1.1" + resolved "https://registry.npmjs.org/@inquirer/core/-/core-5.1.1.tgz#849d4846aea68371c133df6ec9059f5e5bd30d30" + integrity sha512-IuJyZQUg75+L5AmopgnzxYrgcU6PJKL0hoIs332G1Gv55CnmZrhG6BzNOeZ5sOsTi1YCGOopw4rYICv74ejMFg== + dependencies: + "@inquirer/type" "^1.1.5" + "@types/mute-stream" "^0.0.4" + "@types/node" "^20.9.0" + "@types/wrap-ansi" "^3.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + cli-spinners "^2.9.1" + cli-width "^4.1.0" + figures "^3.2.0" + mute-stream "^1.0.0" + run-async "^3.0.0" + signal-exit "^4.1.0" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + +"@inquirer/input@^1.2.14": + version "1.2.14" + resolved "https://registry.npmjs.org/@inquirer/input/-/input-1.2.14.tgz#8951867618bb5cd16dd096e02404eec225a92207" + integrity sha512-tISLGpUKXixIQue7jypNEShrdzJoLvEvZOJ4QRsw5XTfrIYfoWFqAjMQLerGs9CzR86yAI89JR6snHmKwnNddw== + dependencies: + "@inquirer/core" "^5.1.1" + "@inquirer/type" "^1.1.5" + chalk "^4.1.2" + +"@inquirer/type@^1.1.5": + version "1.1.5" + resolved "https://registry.npmjs.org/@inquirer/type/-/type-1.1.5.tgz#b8c171f755859c8159b10e41e1e3a88f0ca99d7f" + integrity sha512-wmwHvHozpPo4IZkkNtbYenem/0wnfI6hvOcGKmPEa0DwuaH5XUQzFqy6OpEpjEegZMhYIk8HDYITI16BPLtrRA== "@lerna/add@3.21.0": version "3.21.0" @@ -1511,11 +1522,25 @@ resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= +"@types/mute-stream@^0.0.4": + version "0.0.4" + resolved "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478" + integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow== + dependencies: + "@types/node" "*" + "@types/node@*", "@types/node@>= 8": version "14.14.6" resolved "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz#146d3da57b3c636cc0d1769396ce1cfa8991147f" integrity sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw== +"@types/node@^20.9.0": + version "20.9.0" + resolved "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" + integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== + dependencies: + undici-types "~5.26.4" + "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -1612,6 +1637,11 @@ "@types/webpack-sources" "*" source-map "^0.6.0" +"@types/wrap-ansi@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd" + integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== + "@types/yauzl@^2.9.1": version "2.9.1" resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" @@ -1937,6 +1967,13 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.11.0" +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -1962,6 +1999,11 @@ ansi-regex@^5.0.0: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -2716,10 +2758,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -2848,11 +2890,16 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.0.0, cli-spinners@^2.2.0: +cli-spinners@^2.0.0: version "2.5.0" resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== +cli-spinners@^2.9.1: + version "2.9.1" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35" + integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== + cli-width@^2.0.0: version "2.2.1" resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" @@ -2863,6 +2910,11 @@ cli-width@^3.0.0: resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + cliui@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -4849,7 +4901,7 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0: +figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -7587,11 +7639,16 @@ mute-stream@0.0.7: resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -mute-stream@0.0.8, mute-stream@^0.0.8, mute-stream@~0.0.4: +mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mute-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + mz@^2.5.0: version "2.7.0" resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -10037,11 +10094,16 @@ rimraf@~2.2.0: resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= -run-async@^2.2.0, run-async@^2.3.0, run-async@^2.4.0: +run-async@^2.2.0, run-async@^2.4.0: version "2.4.1" resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + run-parallel@^1.1.4: version "1.1.10" resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" @@ -10318,6 +10380,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -10775,6 +10842,13 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -11278,6 +11352,11 @@ type-fest@^0.18.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.0.tgz#2edfa6382d48653707344f7fccdb0443d460e8d6" integrity sha512-fbDukFPnJBdn2eZ3RR+5mK2slHLFd6gYHY7jna1KWWy4Yr4XysHuCdXRzy+RiG/HwG4WJat00vdC2UHky5eKiQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type-fest@^0.3.0: version "0.3.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" @@ -11334,6 +11413,11 @@ unbzip2-stream@^1.3.3: buffer "^5.2.1" through "^2.3.8" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unherit@^1.0.4: version "1.1.3" resolved "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" @@ -11989,7 +12073,7 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.0.0: +wrap-ansi@^6.0.0, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==