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..bd87608d
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,94 @@
+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,
+ 'react/jsx-uses-react': 0,
+ 'react/react-in-jsx-scope': 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,
+ "no-use-before-define": 0,
+ "semi": ["error", "never"],
+ "quotes": 0,
+ "no-plusplus": 0
+ }
+}
+
+if (process.env.NODE_ENV === 'development') {
+ Object.assign(eslintrc.rules,
+ {
+ 'no-console': 0,
+ 'no-unused-vars': 0,
+ });
+}
+
+module.exports = eslintrc
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000..036ca2d3
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,13 @@
+# These are supported funding model platforms
+
+github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+# Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+custom: ['http://muyunyun.cn/sponsor/']
diff --git a/.github/config.yml b/.github/config.yml
new file mode 100644
index 00000000..9ce9bb1d
--- /dev/null
+++ b/.github/config.yml
@@ -0,0 +1,2 @@
+todo:
+ keyword: "@makeAnIssue"
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000..54947268
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,13 @@
+# see https://github.com/yi-Xu-0100/traffic-to-badge/blob/main/.github/dependabot.yml
+version: 2
+updates:
+ # Enable version updates for npm
+ - package-ecosystem: 'npm'
+ directory: '/'
+ schedule:
+ interval: 'daily'
+ # Maintain dependencies for GitHub Actions
+ - package-ecosystem: 'github-actions'
+ directory: '/'
+ schedule:
+ interval: 'daily'
diff --git a/.github/stale.yml b/.github/stale.yml
new file mode 100644
index 00000000..3603948a
--- /dev/null
+++ b/.github/stale.yml
@@ -0,0 +1,61 @@
+# Configuration for probot-stale - https://github.com/probot/stale
+
+# Number of days of inactivity before an Issue or Pull Request becomes stale
+daysUntilStale: 60
+
+# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
+# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
+daysUntilClose: 7
+
+# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
+onlyLabels: []
+
+# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
+exemptLabels:
+ - pinned
+ - security
+ - "[Status] Maybe Later"
+
+# Set to true to ignore issues in a project (defaults to false)
+exemptProjects: false
+
+# Set to true to ignore issues in a milestone (defaults to false)
+exemptMilestones: false
+
+# Set to true to ignore issues with an assignee (defaults to false)
+exemptAssignees: false
+
+# Label to use when marking as stale
+staleLabel: wontfix
+
+# Comment to post when marking as stale. Set to `false` to disable
+markComment: >
+ This issue has been automatically marked as stale because it has not had
+ recent activity. It will be closed if no further activity occurs. Thank you
+ for your contributions.
+
+# Comment to post when removing the stale label.
+# unmarkComment: >
+# Your comment here.
+
+# Comment to post when closing a stale Issue or Pull Request.
+# closeComment: >
+# Your comment here.
+
+# Limit the number of actions per hour, from 1-30. Default is 30
+limitPerRun: 30
+
+# Limit to only `issues` or `pulls`
+# only: issues
+
+# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
+# pulls:
+# daysUntilStale: 30
+# markComment: >
+# This pull request has been automatically marked as stale because it has not had
+# recent activity. It will be closed if no further activity occurs. Thank you
+# for your contributions.
+
+# issues:
+# exemptLabels:
+# - confirmed
\ No newline at end of file
diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml
new file mode 100644
index 00000000..76c3afbb
--- /dev/null
+++ b/.github/workflows/gh-pages.yml
@@ -0,0 +1,44 @@
+name: GitHub Pages
+
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+
+jobs:
+ deploy:
+ runs-on: ubuntu-22.04
+ permissions:
+ contents: write
+ concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: '14'
+
+ - name: Get yarn cache
+ id: yarn-cache
+ run: echo "YARN_CACHE_DIR=$(yarn cache dir)" >> "${GITHUB_OUTPUT}"
+
+ - name: Cache dependencies
+ uses: actions/cache@v3
+ with:
+ path: ${{ steps.yarn-cache.outputs.YARN_CACHE_DIR }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ 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
diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml
new file mode 100644
index 00000000..1a35382c
--- /dev/null
+++ b/.github/workflows/greetings.yml
@@ -0,0 +1,13 @@
+name: Greetings
+
+on: [pull_request, issues]
+
+jobs:
+ greeting:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/first-interaction@v1
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ issue-message: 'Welcome your first issue here, thanks'
+ pr-message: 'Welcome your first pr here, thanks'
diff --git a/.github/workflows/traffic2badge.yml b/.github/workflows/traffic2badge.yml
new file mode 100644
index 00000000..7746f381
--- /dev/null
+++ b/.github/workflows/traffic2badge.yml
@@ -0,0 +1,59 @@
+name: traffic2badge
+on:
+ push:
+ branches:
+ - main
+ schedule:
+ - cron: '1 0 * * *' #UTC
+
+jobs:
+ run:
+ name: Make GitHub Traffic to Badge
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Code
+ uses: actions/checkout@v2.3.3
+
+ - name: Get Commit Message
+ id: message
+ uses: actions/github-script@v3.0.0
+ env:
+ FULL_COMMIT_MESSAGE: '${{ github.event.head_commit.message }}'
+ with:
+ result-encoding: string
+ script: |
+ var message = `${process.env.FULL_COMMIT_MESSAGE}`;
+ core.info(message);
+ if (message != '') return message;
+ var time = new Date(Date.now()).toISOString();
+ core.info(time);
+ return `Get traffic data at ${time}`;
+
+ - name: Set Traffic
+ id: traffic
+ uses: yi-Xu-0100/traffic-to-badge@v1.4.0
+ with:
+ my_token: ${{ secrets.TRAFFIC_TOKEN }}
+ #(default) static_list: ${{ github.repository }}
+ #(default) traffic_branch: traffic
+ #(default) views_color: brightgreen
+ #(default) clones_color: brightgreen
+ #(default) logo: github
+ #(default) year:
+
+ - name: Deploy
+ uses: peaceiris/actions-gh-pages@v3.7.3
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_branch: ${{ steps.traffic.outputs.traffic_branch }}
+ publish_dir: ${{ steps.traffic.outputs.traffic_path }}
+ user_name: 'github-actions[bot]'
+ user_email: 'github-actions[bot]@users.noreply.github.com'
+ full_commit_message: ${{ steps.message.outputs.result }}
+
+ - name: Show Traffic Data
+ run: |
+ echo ${{ steps.traffic.outputs.traffic_branch }}
+ echo ${{ steps.traffic.outputs.traffic_path }}
+ cd ${{ steps.traffic.outputs.traffic_path }}
+ ls -a
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..1de26e58
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,16 @@
+node_modules
+.create-react-doc-dist
+package-lock.json
+.cache
+.DS_Store
+.crd-dist/
+
+*.bak
+*.tem
+*.log
+*.temp
+#.swp
+*.*~
+~*.*
+
+docs/忽略文件.md
\ No newline at end of file
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..188fea96
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1,3 @@
+# .npmrc
+
+registry=https://registry.npmjs.org/
diff --git a/.yarnrc b/.yarnrc
new file mode 100644
index 00000000..56800745
--- /dev/null
+++ b/.yarnrc
@@ -0,0 +1,2 @@
+# .yarnrc
+registry "https://registry.npmjs.org/"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..4819722c
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,24 @@
+# HOW TO CONTRIBUTE
+
+1. Welcome your pr! Before pr, talk about situations in the [issue](https://github.com/MuYunyun/create-react-doc/issues/new) firstly. If the situation is reasonable, go to the next step;
+2. Switch to the new branch based main, submit the pr to branch `qa/latest` after finishing development.
+
+## DEV
+
+Run these bash command firstly.
+
+```bash
+$ git clone https://github.com/MuYunyun/create-react-doc
+$ cd create-react-doc
+$ yarn && yarn bootstrap && yarn start
+```
+
+And now you can see the document is running at http://localhost:3000.
+
+## Test
+
+After merging pr to qa/latest and publish beta package. You should verify the feature/bugfix with following bash:
+
+```js
+yarn add create-react-doc@beta
+```
\ No newline at end of file
diff --git a/README-en.md b/README-en.md
new file mode 100644
index 00000000..2fd0f917
--- /dev/null
+++ b/README-en.md
@@ -0,0 +1,113 @@
+ _.-"\
+ _.-" \
+ ,-" \
+ \ create \
+ \ \ react \
+ \ \ doc \
+ \ \ _.-;
+ \ \ _.-" :
+ \ \,-" _.-"
+ \( _.-"
+ `--"
+
+[![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](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
+
+* 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.
+* Personalization: Support [custom theme](https://muyunyun.cn/create-react-doc/9f41fc98).
+* Workflow: Integrate Github actions, support automated packaging and publishing sites.
+
+> [Quick Start](https://muyunyun.cn/create-react-doc/290a4219)
+
+## Subject
+
+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:
+
+* Adapt to mobile and PC multi-terminal display.
+* Support dark mode.
+* The document supports embedded codepen, codesandbox.
+* GitHub linkage.
+* Support using tags to customize aggregate article content.
+
+[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/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.
+
+## Get started quickly
+
+**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.
+
+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 doc
+```
+
+### npm
+
+```bash
+npm init create-react-doc doc
+```
+
+### yarn
+
+```bash
+yarn create react-doc doc
+```
+
+![](http://with.muyunyun.cn/0f0cf6e8cb68b18399eac2927f74b063.jpg)
+
+> 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 .`.
+
+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.
+
+
+
+## Site release
+
+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.
+
+### Automatically package and publish to gh-pages (recommended)
+
+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.
+
+![](http://with.muyunyun.cn/ea24d511f76efe5ba5d13bb6b1609aac.jpg)
+
+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
+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
+```
+
+> 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.
+
+## Practice Sharing
+
+* [基于 SSR 的预渲染首屏直出方案](http://muyunyun.cn/blog/g3v1c5bq)
+* [SEO 在 SPA 站点中的实践](http://muyunyun.cn/blog/ettzfags)
diff --git a/README.md b/README.md
index bcd70a2a..79e25724 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,124 @@
-# create-react-doc
\ No newline at end of file
+
+ _.-"\
+ _.-" \
+ ,-" \
+ \ create \
+ \ \ react \
+ \ \ doc \
+ \ \ _.-;
+ \ \ _.-" :
+ \ \,-" _.-"
+ \( _.-"
+ `--"
+
+[![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-en.md) | 简体中文
+
+# Create React Doc
+
+[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 来开发、部署文档或者博客站点而无需关心额外的环境配置信息。
+
+## 特性
+
+* 建站理念: `文件即站点` (Files as a Site)。
+* 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。
+* 流畅的用户体验: 内置 SSR 首屏直出方案(基于 gp-pages 服务),以提升用户体验。
+* 基于 mdx: 支持在 markdown 中`书写 React 组件`、数学公式等。
+* 搜索引擎优化: 支持 SEO, 让文档更易被搜索。
+* 个性化: 支持[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。
+* 工作流: 集成 Github action, 支持自动化打包、发布站点。
+
+> [快速上手](https://muyunyun.cn/create-react-doc/290a4219)
+
+## 主题
+
+create-react-doc 提供了默认主题 [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)章节。
+
+## 快速上手
+
+**create-react-doc** 非常容易上手。开发者不需要额外安装或配置 webpack 或者 Babel 等工具,它们被内置隐藏在脚手架中,因此开发者可以专心于文档的书写。
+
+如果你想在当前文件下建立站点文件 `doc`, 这里提供如下三种方式快速建站:
+
+### npx
+
+```bash
+npx create-react-doc doc
+```
+
+### npm
+
+```bash
+npm init create-react-doc doc
+```
+
+### yarn
+
+```bash
+yarn create react-doc doc
+```
+
+![](http://with.muyunyun.cn/0f0cf6e8cb68b18399eac2927f74b063.jpg)
+
+> 如果想把模板内容内容拉取到当前文件夹, 则可以将如上命令的 `doc` 替换为 `.`, 比如执行 `npx create-react-doc .`。
+
+接着执行 `cd doc && yarn && yarn start`, 可以在 `localhost: 3000` 预览站点, 如果站点文档发生改变, 站点将自动重新加载。
+
+
+
+## 站点发布
+
+在 [快速上手](https://muyunyun.cn/create-react-doc/290a4219) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。
+
+### 自动打包发布到 gh-pages (推荐)
+
+初始化的模板项目集成了 `Github action` 的 [ci 配置](https://github.com/MuYunyun/create-react-doc/blob/main/packages/templates/default/.github/workflows/gh-pages.yml), 使用方只需在 main 分支执行 `git push` 即可以完成站点的自动部署。
+
+![](http://with.muyunyun.cn/ea24d511f76efe5ba5d13bb6b1609aac.jpg)
+
+如果是第一次部署, 在执行以下操作后, 需要在项目的 setting 选项卡中将 Github Pages 选择为 gh-pages。(详情见 [First Deployment with GITHUB_TOKEN](https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-first-deployment-with-github_token))
+
+```bash
+git init
+git add .
+git commit -m "first commit"
+git branch -M main
+git remote add origin https://github.com/用户或组织名/项目名.git
+git push -u origin main
+```
+
+## 更多内容
+
+* [站点发布](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)
+
+## 实践分享
+
+* [基于 SSR 的预渲染首屏直出方案](http://muyunyun.cn/blog/g3v1c5bq)
+* [SEO 在 SPA 站点中的实践](http://muyunyun.cn/blog/ettzfags)
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 {children}
+}
+
+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/config.yml b/config.yml
new file mode 100644
index 00000000..9d7f949a
--- /dev/null
+++ b/config.yml
@@ -0,0 +1,54 @@
+# create-react-doc configuration.
+
+# Site
+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/主题,
+ docs/站点发布.md,
+ docs/Front-matter.md,
+ docs/数学公式.md,
+ docs/书写组件.md,
+ docs/高阶用法.md,
+ docs/其它工具.md,
+ docs/测试
+]
+## set init open menu keys
+# menuOpenKeys:
+
+# site theme
+devTheme: packages/crd-seed/index
+# theme: crd-seed
+
+# Github
+## if you want to editing pages on github, you should config these arguments.
+user: MuYunyun
+repo: create-react-doc
+github-ribbons: true
+domain: https://muyunyun.cn
+seo:
+ google: true
+
+# Available values: en | zh-cn
+language: en
+
+# Inject Custom Logic
+inject: injectLogic/index.js
+
+# Use abbrlink
+abbrlink: true
+
+# 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:
+ repoId: MDEwOlJlcG9zaXRvcnkyNjgwMTE4MzA=
+ categoryId: DIC_kwDOD_mJNs4CSd1W
diff --git a/docs/Front-matter.md b/docs/Front-matter.md
new file mode 100644
index 00000000..69efbc82
--- /dev/null
+++ b/docs/Front-matter.md
@@ -0,0 +1,43 @@
+
+
+## Front-matter
+
+Front-matter 是文件最上方包裹在 `` 之间的区域,用于指定个别文件的变量,举例来说:
+
+```md
+
+```
+
+以下是预先定义的参数,您可在模板中使用这些参数值并加以利用。
+
+| 参数 | 描述 | 类型 |
+| :------- | :-------------------------------------------------------------- | :------- |
+| abbrlink | 短链。用于指定页面路由展示为指定短链,使用短链有助于 SEO 搜索。 | |
+| tags | 自定义标签 | string[] |
+
+## 链接持久化
+
+在以下场景需求场合中,可以展示短链以优化 URL 的显示。
+
+* SEO 场景下需要链接持久化。
+* URL 链接中存在中文会被转码展示。
+* 文档的路径与文件名经常变更。
+
+### 如何使用短链
+
+在 `config.yml` 增加配置 `abbrlink: true`
+
+```diff
++ abbrlink: true
+```
+
+做好上述配置后,接着在控制台执行 `react-doc generate` 即可给 menu 配置属性中的所有文章目录文件加上短链资源。
+
+```bash
+react-doc generate // 一键给所有文章加上短链
+```
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"
new file mode 100644
index 00000000..cd0f7103
--- /dev/null
+++ "b/docs/\344\270\273\351\242\230/\350\207\252\345\256\232\344\271\211\344\270\273\351\242\230.md"
@@ -0,0 +1,107 @@
+
+
+## 使用自定义主题
+
+切换主题非常简单, 只需要将根目录文件 `config.yml` 中的 `theme` 更改为您想使用的主题即可。
+
+```diff
++ theme: custom-theme
+```
+
+### 如何开发自定义主题包
+
+create-react-doc 脚手架提供了脚本命令 `react-doc theme` 用来一键创建主题包开发环境。
+
+![](http://with.muyunyun.cn/2e4a4b11f96c0d38759700c05fe96267.gif)
+
+```js
+// 安装 create-react-doc
+yarn add create-react-doc -g
+// 执行 react-doc theme 并输入主题包名字
+react-doc theme
+```
+
+进入到所创建主题目录, 执行 `yarn && yarn start`, 此时会自动打开浏览器, 并在屏幕中央显示 `Write docs happily now.`。如下图所示:
+
+![](http://with.muyunyun.cn/1a2bf34700afd77a95014d2d5f359ffa.jpg)
+
+恭喜你, 此时你已经将主题开发环境配置完成。接着便可以开始愉快地定制个人主题了。
+
+在所创建的主题项目中使用了 `react v18`,`react-router-dom v6`,项目支持使用 `less` 语法。
+
+```js
+import { Switch, Route } from 'react-router-dom'
+import styles from './index.less'
+
+const CustomTheme = (props: CustomThemeProps) => {
+ return (
+
+
+ Welcome to your own theme
+
+
+ )
+}
+
+export default CustomTheme
+```
+
+CustomThemeProps 的接口类型暴露了菜单资源 `menuSource` 与路由资源 `routeData`, 自定义主题时可以按需使用它们。
+
+```js
+interface CustomThemeProps {
+ /** 菜单资源 */
+ menuSource: {
+ /** 文件名称 eg: '快速上手.md' */
+ name: string
+ /** 文件扩展名 eg: '.md' */
+ extension: string
+ /** 文件路径 eg: '/docs/快速上手.md' */
+ path: string
+ /** 路由路径 eg: ‘/快速上手’ */
+ routePath: string
+ /** 文件大小 eg: 924 */
+ size: number
+ /** 文件类型 eg: 'file' */
+ type: string
+ /** 文件创建日期 eg: '2020-11-11' */
+ birthtime: string
+ /** 文件修改日期 eg: '2021-01-14' */
+ mtime: string
+ }[]
+ /** 路由资源 */
+ routeData: {
+ /** 文件名称 eg: '快速上手.md' */
+ article: string
+ /** 异步加载 markdown 组件函数 */
+ component: AsyncRouteComponent(props)
+ /** markdown 文章信息对象。若为文件则有 title 字段, 若为文件夹则无 title 字段 */
+ mdconf: { title?: string }
+ /** 文件路径 eg: '/docs/快速上手' */
+ path: string
+ }[]
+}
+```
+
+此外在自定义主题文件中可以自由使用由 webpack 注入的 `DOCSCONFIG` 对象中的变量, DOCSCONFIG 中的变量与项目根目录中的 `config.yml` 文件变量一一对应。
+
+比如 `config.yml` 配置如下所示:
+
+```bash
+menu: ['Introduction']
+theme: crd-seed
+user: muyunyun
+repo: https://github.com/MuYunyun/create-react-doc
+language: en
+```
+
+则主题项目中可以通过如下方式获取到 `config.yml` 配置属性。
+
+```js
+const { menu, theme, user } = DOCSCONFIG || {}
+```
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"
new file mode 100644
index 00000000..0772a6db
--- /dev/null
+++ "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md"
@@ -0,0 +1,48 @@
+
+
+## 默认主题
+
+create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。
+
+该主题支持以下特性:
+
+- [x] 适配网页/移动端展示。
+- [x] 支持暗黑模式。
+- [x] 支持标签页自定义聚合文章内容。
+- [x] 内置评论模块。
+- [x] 支持内嵌展示 codepen、codesandbox 案例。
+- [x] 支持从文档页快速跳转到对应的 Github 文档页进行在线编辑。
+
+使用该主题搭建的项目有:
+
+* [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog)
+ * ![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.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 | |
+| 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/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..39b327e2
--- /dev/null
+++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md"
@@ -0,0 +1,21 @@
+
+
+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'
+
+Primary
+```
+
+Primary
\ No newline at end of file
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"
new file mode 100644
index 00000000..4ffac938
--- /dev/null
+++ "b/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md"
@@ -0,0 +1,57 @@
+
+
+## 其它工具
+
+### crd-leetcode-cli
+
+#### 背景
+
+当新增 LeetCode 题解时需要[手动更新表格](https://github.com/MuYunyun/blog/blob/main/LeetCode/README.md), 较为不便。[crd-leetcode-cli](https://github.com/MuYunyun/create-react-doc/tree/main/packages/leetcode-cli) 提供了更新 leetcode 站点中已 ac 题解的能力。
+
+#### 安装
+
+执行 `yarn add crd-leetcode-cli -g`, 国内用户可以执行 `cnpm install crd-leetcode-cli -g`
+
+#### 使用
+
+```bash
+leetcode download // 增量拉取 AC 题目(若无登录, 则会先执行登录逻辑)
+leetcode download -a // 全量拉取 AC 题目
+leetcode login // 登录
+leetcode logout // 登出
+```
+
+#### 自定义渲染表格
+
+插件提供了自定义渲染 markdown table 的能力。
+
+在项目根目录创建 [config.js](https://github.com/MuYunyun/blog/blob/main/config.js) 文件。
+
+在 config.js 内自定义生成 markdown 的 [transform_markdown_table 函数](https://github.com/MuYunyun/blog/blob/main/config.js#L5-L22)。
+
+```js
+const transform_markdown_table = (dataArr: QuestionProps[]): string => {}
+module.exports = { transform_markdown_table }
+```
+
+QuestionProps 接口定义如下:
+
+| 名称 | 含义 | 例子 |
+| :--------: | :--------------: | :-----: |
+| questionId | 题号 | |
+| title | 标题 | Two Sum |
+| titleSlug | 标题的另一种模式 | two-sum |
+| difficulty | 难度 | |
+| topicTags | 题目所属标签 | |
+
+通过自定义 transform_markdown_table 函数, 便可得到如下 markdown table:
+
+![](http://with.muyunyun.cn/1938e43a45410090e8486e495e6d9fee.jpg)
+
+#### 技术细节
+
+* 使用 puppeteer 登录 leetcode 获取 cookie 信息。
+* 获取 cookie 后, 使用 graphql-request 调用 graphql 接口获取题目详情信息。
+* 自定义生成 markdown table。
\ No newline at end of file
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"
new file mode 100644
index 00000000..5ca9254d
--- /dev/null
+++ "b/docs/\345\277\253\351\200\237\344\270\212\346\211\213.md"
@@ -0,0 +1,37 @@
+
+
+## 快速上手
+
+**create-react-doc** 非常容易上手。开发者不需要额外安装或配置 webpack 或者 Babel 等工具,它们被内置隐藏在脚手架中,因此开发者可以专心于文档的书写。
+
+如果你想在当前文件下建立站点文件 `doc`, 这里提供如下三种方式快速建站:
+
+### npx
+
+```bash
+npx create-react-doc doc
+```
+
+### npm
+
+```bash
+npm init create-react-doc doc
+```
+
+### yarn
+
+```bash
+yarn create react-doc doc
+```
+
+![](http://with.muyunyun.cn/0f0cf6e8cb68b18399eac2927f74b063.jpg)
+
+> 如果想把模板内容内容拉取到当前文件夹, 则可以将如上命令的 `doc` 替换为 `.`, 比如执行 `npx create-react-doc .`。
+
+接着执行 `cd doc && yarn && yarn start`, 可以在 `localhost: 3000` 预览站点, 如果站点文档发生改变, 站点将自动重新加载。
+
+
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..fd6512d9
--- /dev/null
+++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md"
@@ -0,0 +1,47 @@
+
+
+## 数学公式
+
+支持在 `$$` 与 `$$` 之间书写 latex 数学公式即能显示在网页上。
+
+```js
+$$
+z = \frac{x}{y}
+$$
+```
+
+被转化为:
+
+$$
+z = \frac{x}{y}
+$$
+
+```js
+$$
+C_1 \quad= \quad c_2 + c_4^3
+$$
+```
+
+被转化为:
+
+$$
+C_1 \quad= \quad c_2 + c_4^3
+$$
+
+```js
+$$
+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}
+$$
+
+## 参考链接
+
+* [latex 数学公式示例汇总](https://zhuanlan.zhihu.com/p/34799800)
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"
new file mode 100644
index 00000000..31e52649
--- /dev/null
+++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md"
@@ -0,0 +1,303 @@
+
+
+# CHANGELOG
+
+`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`
+
+- **Fix**
+
+ - 🐞 修复 @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`
+
+- **Feature**
+
+ - 🚀 主题内置评论模块,支持在 [config.yml](https://muyunyun.cn/create-react-doc/85li8wdd) 配置开启评论模块。
+
+### 1.9.2
+
+`2022-04-09`
+
+- **Fix**
+
+ - 🐞 修复标签页包含重复标签归档的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/286)
+
+### 1.9.1
+
+`2022-04-05`
+
+- **Enhancement**
+
+ - 🎈 升级基础包版本。[issue](https://github.com/MuYunyun/create-react-doc/issues/278)
+ - 更新 react 版本从 v17 至 v18
+ - 更新 react-router-dom 版本从 v4 至 v6。
+
+### 1.9.0
+
+`2022-04-01`
+
+- **Feature**
+
+ - 🚀 支持配置展示标签页以自定义聚合文章内容。[issue](https://github.com/MuYunyun/create-react-doc/issues/264)
+
+### 1.8.2
+
+`2022-02-02`
+
+- **Enhancement**
+
+ - 🎈 支持在本地环境调试项目源代码。[mr](https://github.com/MuYunyun/create-react-doc/pull/249)
+
+### 1.8.1
+
+`2022-01-17`
+
+- **Fix**
+
+ - 🐞 修复 crd-scripts、crd-seed 遗漏指定安装 crd-client-utils 的问题。
+
+### 1.8.0
+
+`2022-01-16`
+
+- **Feature**
+
+ - 🚀 支持 SSR 首屏直出方案(基于 gp-pages 服务)以避免预渲染带来的二次刷新产生页面抖动的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/103)
+ - 🚀 新增 crd-client-utils 包以收录公用方法。
+
+### 1.7.0
+
+`2022-01-02`
+
+- **Feature**
+
+ - 🚀 访问内容页路由时,收起菜单侧边栏以提高首屏加载体验。[issue](https://github.com/MuYunyun/create-react-doc/issues/219)
+ - 优势一: 用户可以聚焦访问内容区,提升阅读体验。
+ - 优势二: 菜单区域渲染内容复杂,隐藏其加载过程,提升首屏体验。
+ - 🚀 菜单侧边栏展开后,选中项自动滚动到视口内。
+
+### 1.6.1
+
+`2021-12-27`
+
+- **Fix**
+
+ - 🐞 修复访问多层级子菜单目录对应的路由时,对应菜单未被展开的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/222)。
+
+### 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`
+
+- **Fix**
+
+ - 🐞 修复在使用短链时,站点 sitemap.xml 文件生成丢失的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/206)。
+
+### 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`
+
+- **Fix**
+
+ - 🐞 修复页面首屏菜单栏未高亮选中的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/195)。
+
+### 1.5.0
+
+`2021-10-13`
+
+- **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`
+
+- **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`
+
+- **Fix**
+
+ - 🐞 修复路由过多时导致预渲染编译超时的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/182)
+ - 🐞 修复初始化模板 menu 参数类型错误的问题。[mr](https://github.com/MuYunyun/create-react-doc/pull/181)
+
+### 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`
+
+- **Fix**
+
+ - 🐞 修复编译预渲染时, 缺少多层级目录文件生成的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/147)。
+
+### 1.3.0
+
+`2021-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)
+ - 🚀 支持在 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
+
+- **Fix**
+
+ - 🐞 修复路由数量过多, puppeteer 运行超时的问题。[issue](https://github.com/MuYunyun/blog/issues/115)。
+
+### 1.1.4
+
+- **Fix**
+
+ - 🐞 修复点击 Edit In Github 失效的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/86)。
+
+### 1.1.0
+
+- **Feature**
+
+ - 🚀 新增 crd-generator-sitemap 包, 用于生成 sitemap。
+ - 🚀 配置文件中新增 domain 字段用于生成 sitemap。
+
+### 1.0.0
+
+- **Feature**
+
+ - 🚀 文档支持预渲染。[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
+
+- **Feature**
+
+ - 🚀 支持显示展示 pv、uv。[pr](https://github.com/MuYunyun/create-react-doc/pull/85)
+
+### 0.2.29
+
+- **Fix**
+
+ - 🐞 修复首次进入菜单未高亮的问题。[issue](https://github.com/MuYunyun/create-react-doc/issues/78)。
+### 0.2.28
+
+- **Feature**
+
+ - 🚀 支持自定义主题 ci。[pr](https://github.com/MuYunyun/create-react-doc/pull/80)
+
+### 0.2.27
+
+- **Feature**
+
+ - 🚀 支持自定义主题。[pr](https://github.com/MuYunyun/create-react-doc/pull/77)
+
+### 0.2.22
+
+- **Feature**
+
+ - 🚀 升级 React 16 至 17。[pr](https://github.com/MuYunyun/create-react-doc/pull/71)
+
+### 0.2.21
+
+- **Feature**
+
+ - 🚀 升级 webpack4 至 webpack5。[pr](https://github.com/MuYunyun/create-react-doc/pull/65)
+
+### 0.2.14
+
+- **Feature**
+
+ - 🚀 支持 inject 与 injectWithPathname 注入自定义逻辑。[pr](https://github.com/MuYunyun/create-react-doc/pull/65)
+
+### 0.2.14
+
+- **Feature**
+
+ - 🚀 集成 Github action, 支持自动化打包、发布站点。
+
+### 0.2.7
+
+`2020-09-25`
+
+- **Feature**
+
+ - 🚀 提供 @crd/leetcode-cli 提供将 leetcode 已 AC 的题目转化为 markdown table 的能力。[pr](https://github.com/MuYunyun/create-react-doc/pull/22)
+
+### 0.2.0
+
+`2020-08-02`
+
+- **Feature**
+
+ - 🚀 站点支持全局搜索菜单标题与文件内容。[pr](https://github.com/MuYunyun/create-react-doc/pull/22)
+
+### 0.1.20
+
+`2020-07-13`
+
+- **Fix**
+
+ - 🐞 fix [20](https://github.com/MuYunyun/create-react-doc/issues/20)。
+ - 🐞 fix [17](https://github.com/MuYunyun/create-react-doc/issues/17)。
+
+- **Enhancement**
+
+ - 🎈 项目结构重构为 monorepo。[pr](https://github.com/MuYunyun/create-react-doc/pull/16)
+
+### 0.1.0
+
+- **Feature**
+
+ - 🚀 详细内容见 [issue](https://github.com/MuYunyun/create-react-doc/issues/2)
\ No newline at end of file
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..6ff4117a
--- /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 @@
+
+
+该页面用来测试自定义标签。
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..6f61f3e3
--- /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,5 @@
+
+
+* 该页面用来测试未使用 abbrlink 的中文路径。
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"
new file mode 100644
index 00000000..c841e5b6
--- /dev/null
+++ "b/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md"
@@ -0,0 +1,30 @@
+
+
+## 站点发布
+
+在 [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。
+
+### 自动打包发布到 gh-pages (推荐)
+
+初始化的模板项目集成了 `Github action` 的 [ci 配置](https://github.com/MuYunyun/create-react-doc/blob/main/packages/templates/default/.github/workflows/gh-pages.yml), 使用方只需在 main 分支执行 `git push` 即可以完成站点的自动部署。
+
+![](http://with.muyunyun.cn/ea24d511f76efe5ba5d13bb6b1609aac.jpg)
+
+如果是第一次部署, 在执行以下操作后, 需要在项目的 setting 选项卡中将 Github Pages 选择为 gh-pages。(详情见 [First Deployment with GITHUB_TOKEN](https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-first-deployment-with-github_token))
+
+```bash
+git init
+git add .
+git commit -m "first commit"
+git branch -M main
+git remote add origin https://github.com/用户或组织名/项目名.git
+git push -u origin main
+```
+
+### 手动打包发布
+
+如果需要发布到自定义服务器, 可以执行 `npm run build` 或者 `yarn build` 对将要发布的文档站点进行打包构建, 此时的文档网站已准备好进行部署。
+
+接着将打包出的 `.crd-dist` 的文件资源同步到目标服务器即可。
\ No newline at end of file
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"
new file mode 100644
index 00000000..e8e390c7
--- /dev/null
+++ "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md"
@@ -0,0 +1,24 @@
+
+
+## 高阶用法
+
+与 git 文件结构类似, 如果在展示的文件夹中有私有文件不方便展示在文档站点, 可以在 `.gitignore` 文件中设置过滤文件, 这样它们就不会展示在文档站点中了。eg: [.gitignore](https://github.com/MuYunyun/blog/blob/main/.gitignore)
+
+### 插入自定义脚本
+
+在 `config.yml` 文件中加入 `inject` 字段。
+
+```diff
++ inject: injectLogic/index.js
+```
+
+然后在根目录新建与 `inject` 字段相对应的文件, 声明 `injectWithPathname` 函数, 写入[自定义逻辑](https://github.com/MuYunyun/create-react-doc/injectLogic/index.js)。
+
+```js
+// perf injectWithPathname logic every pathname changes
+const injectWithPathname = (pathname) => {}
+
+module.exports = { injectWithPathname }
+```
\ No newline at end of file
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/injectLogic/index.js b/injectLogic/index.js
new file mode 100644
index 00000000..a1a94c89
--- /dev/null
+++ b/injectLogic/index.js
@@ -0,0 +1,14 @@
+/* eslint-disable no-empty */
+// 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) => {}
+
+module.exports = { inject, injectWithPathname }
diff --git a/lerna.json b/lerna.json
new file mode 100644
index 00000000..7cf2643e
--- /dev/null
+++ b/lerna.json
@@ -0,0 +1,20 @@
+{
+ "version": "1.10.3",
+ "command": {
+ "bootstrap": {
+ "npmClientArgs": [
+ "--no-package-lock"
+ ]
+ },
+ "publish": {
+ "allowBranch": [
+ "main",
+ "qa/latest"
+ ],
+ "message": "chore: publish"
+ }
+ },
+ "//": "set yarn workspaces in root",
+ "useWorkspaces": true,
+ "npmClient": "yarn"
+}
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..7c33bde6
--- /dev/null
+++ b/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "create-react-doc",
+ "private": true,
+ "workspaces": [
+ "packages/*"
+ ],
+ "description": "Fast static generated site. Just write markdown file.",
+ "homepage": "http://muyunyun.cn/create-react-doc",
+ "bin": {
+ "react-doc": "bin/react-doc.js"
+ },
+ "scripts": {
+ "bootstrap": "lerna bootstrap",
+ "bootstrap --hoist": "lerna bootstrap --hoist",
+ "clean": "lerna clean",
+ "start": "yarn bootstrap && node packages/create-react-doc/index.js start",
+ "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",
+ "cleanup": "rm -rf node_modules/gh-pages/.cache",
+ "deploy:site": "npm run cleanup && node gh-pages",
+ "up:dev": "sh utils/uppackage-dev.sh",
+ "up": "sh utils/uppackage.sh"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MuYunyun/create-react-doc"
+ },
+ "keywords": [
+ "react",
+ "create-react-doc",
+ "blog",
+ "markdown"
+ ],
+ "author": "muyunyun",
+ "license": "MIT",
+ "devDependencies": {
+ "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",
+ "gh-pages": "^3.1.0",
+ "lerna": "^3.22.1"
+ }
+}
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-client-utils/index.js b/packages/crd-client-utils/index.js
new file mode 100644
index 00000000..c6fd5591
--- /dev/null
+++ b/packages/crd-client-utils/index.js
@@ -0,0 +1,18 @@
+import { useLayoutEffect, useEffect } from 'react'
+
+const ifDev = env === 'dev'
+const ifProd = env === 'prod'
+const ifPrerender = window.__PRERENDER_INJECTED && window.__PRERENDER_INJECTED.prerender
+
+// 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
+
+export {
+ ifDev,
+ ifProd,
+ ifPrerender,
+ useEnhancedEffect
+}
diff --git a/packages/crd-client-utils/package.json b/packages/crd-client-utils/package.json
new file mode 100644
index 00000000..9542d2a0
--- /dev/null
+++ b/packages/crd-client-utils/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "crd-client-utils",
+ "version": "1.8.2",
+ "description": "Utils with create react doc",
+ "main": "index.js",
+ "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-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/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/generate.js b/packages/crd-generator-sitemap/generate.js
new file mode 100644
index 00000000..bbee11d5
--- /dev/null
+++ b/packages/crd-generator-sitemap/generate.js
@@ -0,0 +1,45 @@
+const { getDocsConfig } = require('crd-utils')
+
+// template for google SEO
+//
+// muyunyun.cn/blog/xxx
+// {{ sNow | formatDate }}
+// daily
+// 1.0
+//
+
+const docsConfig = getDocsConfig()
+
+const template = content =>
+ `
+
+ ${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) {
+ content +=
+`
+ ${domain}/${repo}${routes[i]}
+ `
+ } else {
+ content +=
+`
+ ${domain}/${repo}${routes[i]}
+ \n`
+ }
+ }
+ return template(content)
+}
+
+module.exports = {
+ generateSiteMap,
+}
diff --git a/packages/crd-generator-sitemap/index.js b/packages/crd-generator-sitemap/index.js
new file mode 100644
index 00000000..3533d7d1
--- /dev/null
+++ b/packages/crd-generator-sitemap/index.js
@@ -0,0 +1,5 @@
+const { generateSiteMap } = require('./generate')
+
+module.exports = {
+ generateSiteMap,
+}
diff --git a/packages/crd-generator-sitemap/package.json b/packages/crd-generator-sitemap/package.json
new file mode 100644
index 00000000..689aa18d
--- /dev/null
+++ b/packages/crd-generator-sitemap/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "crd-generator-sitemap",
+ "version": "1.3.4",
+ "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-scripts/.npmrc b/packages/crd-scripts/.npmrc
new file mode 100644
index 00000000..7edb6af8
--- /dev/null
+++ b/packages/crd-scripts/.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-scripts/README.md b/packages/crd-scripts/README.md
new file mode 100644
index 00000000..612fabf1
--- /dev/null
+++ b/packages/crd-scripts/README.md
@@ -0,0 +1,15 @@
+ _.-"\
+ _.-" \
+ ,-" \
+ \ create \
+ \ \ react \
+ \ \ doc \
+ \ \ _.-;
+ \ \ _.-" :
+ \ \,-" _.-"
+ \( _.-"
+ `--"
+
+# crd-scripts
+
+crd-scripts 封装提供了一系列构建、发布脚本。
diff --git a/packages/crd-scripts/index.js b/packages/crd-scripts/index.js
new file mode 100644
index 00000000..8a84dd85
--- /dev/null
+++ b/packages/crd-scripts/index.js
@@ -0,0 +1,19 @@
+const initProject = require('./src/commands/initProject')
+const initTheme = require('./src/commands/initTheme')
+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 = {
+ initProject,
+ initTheme,
+ initCache,
+ Servers,
+ Build,
+ Deploy,
+ Generate,
+ paths,
+}
diff --git a/packages/crd-scripts/package.json b/packages/crd-scripts/package.json
new file mode 100644
index 00000000..485fef65
--- /dev/null
+++ b/packages/crd-scripts/package.json
@@ -0,0 +1,65 @@
+{
+ "name": "crd-scripts",
+ "version": "1.10.3",
+ "description": "Scripts using with Create React Doc",
+ "main": "index.js",
+ "dependencies": {
+ "@mdx-js/loader": "^1.6.22",
+ "@nuxtjs/friendly-errors-webpack-plugin": "^2.0.2",
+ "babel-eslint": "^8.0.1",
+ "chalk": "^4.1.0",
+ "colors-cli": "^1.0.13",
+ "copy-markdown-image-webpack-plugin": "^2.0.0",
+ "copy-template-dir": "^1.3.0",
+ "crd-client-utils": "^1.8.2",
+ "crd-generator-sitemap": "^1.3.4",
+ "crd-prerender-spa-plugin": "^0.2.0",
+ "crd-theme": "^1.10.3",
+ "crd-utils": "^1.5.0",
+ "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",
+ "fs-extra": "^5.0.0",
+ "gh-pages": "^1.2.0",
+ "html-webpack-plugin": "^4.5.1",
+ "less-loader": "^7.2.1",
+ "loading-cli": "^1.0.6",
+ "local-ip-url": "^1.0.1",
+ "mini-css-extract-plugin": "^0.4.0",
+ "open-browsers": "^1.1.1",
+ "path-browserify": "^1.0.1",
+ "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",
+ "upath": "^1.0.2",
+ "url-replace-loader": "^1.0.0",
+ "webpack": "^5.12.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"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MuYunyun/create-react-doc",
+ "directory": "packages/scripts"
+ },
+ "keywords": [],
+ "publishConfig": {
+ "access": "public"
+ },
+ "author": "muyunyun",
+ "license": "MIT",
+ "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199"
+}
diff --git a/packages/crd-scripts/src/build.js b/packages/crd-scripts/src/build.js
new file mode 100644
index 00000000..baa3b8d6
--- /dev/null
+++ b/packages/crd-scripts/src/build.js
@@ -0,0 +1,33 @@
+const webpack = require('webpack')
+const fs = require('fs')
+const { docsConfig } = require('crd-utils')
+const conf = require('./conf/webpack.config.prod')
+require('colors-cli/toxic')
+
+module.exports = function serve(program) {
+ if (!fs.existsSync(docsConfig)) {
+ console.log('please check config.yml in root dir!\n')
+ return
+ }
+ 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,
+ errors: true,
+ errorDetails: true,
+ errorStack: true,
+ warningsFilter: (warning) => {
+ return true
+ }
+ }))
+ })
+}
diff --git a/packages/crd-scripts/src/commands/initProject.js b/packages/crd-scripts/src/commands/initProject.js
new file mode 100644
index 00000000..d5d423e5
--- /dev/null
+++ b/packages/crd-scripts/src/commands/initProject.js
@@ -0,0 +1,51 @@
+const path = require('path')
+const { execSync } = require('child_process')
+const fs = require('fs-extra')
+const { templatePath, resolveApp } = require('crd-utils')
+const copyTemplate = require('copy-template-dir')
+const paths = require('../conf/path')
+
+const log = console.log; // eslint-disable-line
+
+// eslint-disable-next-line no-unused-vars
+module.exports = function (params) {
+ // process.argv[2] means the first argument after react-doc, eg react doc abc, process.argv[2] is abc
+ const outDir = path.join(paths.projectPath, process.argv[2])
+ const projectName = path.basename(outDir)
+
+ const crdpkg = require(paths.crdPackage); // eslint-disable-line
+ // replace the last vertion with x, so it'll install autoly when the last vertion changes.
+ const CRD_VERSION = crdpkg.version.split('.').slice(0, 2).concat('x').join('.')
+
+ // clear output dir
+ if (!fs.pathExistsSync(outDir)) {
+ fs.ensureDirSync(outDir)
+ }
+
+ const defaultTemplatePath = `${templatePath}/default`
+
+ // copy template, see https://github.com/MuYunyun/create-react-doc/issues/50
+ if (!fs.pathExistsSync(defaultTemplatePath)) {
+ execSync('mkdir temp && cd temp && yarn add crd-templates -D')
+ }
+ 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`)
+ })
+ } else {
+ log(` ❎ crd-templates install fail.\n\n`)
+ }
+}
diff --git a/packages/crd-scripts/src/commands/initTheme.js b/packages/crd-scripts/src/commands/initTheme.js
new file mode 100644
index 00000000..2ac2570a
--- /dev/null
+++ b/packages/crd-scripts/src/commands/initTheme.js
@@ -0,0 +1,44 @@
+/**
+ * This file is to init theme quickly.
+ */
+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')
+
+const log = console.log; // eslint-disable-line
+
+// eslint-disable-next-line no-unused-vars
+module.exports = function (themeName) {
+ const outDir = path.join(paths.projectPath, themeName)
+
+ const crdpkg = require(paths.crdPackage); // eslint-disable-line
+ // replace the last vertion with x, so it'll install autoly when the last vertion changes.
+ const CRD_VERSION = crdpkg.version.split('.').slice(0, 2).concat('x').join('.')
+
+ // clear output dir
+ if (!fs.pathExistsSync(outDir)) {
+ fs.ensureDirSync(outDir)
+ }
+
+ const defaultTemplatePath = `${templatePath}/theme/default`
+
+ if (!fs.pathExistsSync(defaultTemplatePath)) {
+ execSync('mkdir temp && cd temp && yarn add crd-templates -D')
+ }
+ copyTemplate(defaultTemplatePath, outDir, {
+ name: themeName,
+ 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, '')}`)
+ })
+ execSync('rm -rf temp')
+ log('\n initialization finished!\n'.green)
+ const cmdstr = `cd ${themeName} && yarn && yarn start`.cyan
+ log(` Run the ${cmdstr} to start the website.\n\n`)
+ })
+}
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
new file mode 100644
index 00000000..d5b046b9
--- /dev/null
+++ b/packages/crd-scripts/src/conf/getPrerenderRoutes.js
@@ -0,0 +1,51 @@
+// 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 = recursiveDirTree(dpCloneDirTree)
+ result.push('/404')
+ result.push('/tags')
+ return result
+}
+
+function recursiveDirTree(data) {
+ return recursive(
+ data,
+ '',
+ []
+ )
+}
+
+function recursive(
+ data,
+ routePath,
+ prerenderRouteArr,
+) {
+ data.forEach((item) => {
+ const { mdconf } = item || {}
+ 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,
+ prerenderRouteArr,
+ )
+ } else {
+ item.children = []
+ }
+ } else if (item.type === 'file') {
+ const prerenderRouteName = abbrlink
+ ? `/${abbrlink}`
+ : composeRouteName
+ prerenderRouteArr.push(prerenderRouteName)
+ }
+ })
+ return prerenderRouteArr
+}
+
+module.exports = {
+ getPrerenderRoutes
+}
diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js
new file mode 100644
index 00000000..deeac6f3
--- /dev/null
+++ b/packages/crd-scripts/src/conf/node-directory-tree.js
@@ -0,0 +1,193 @@
+/* eslint-disable no-undef */
+const fs = require('fs')
+const PATH = require('path')
+const YAML = require('yamljs')
+const { execSync } = require('child_process')
+const {
+ replaceForFrontMatter,
+ generateRandomId,
+} = require('crd-utils')
+const { getDigitFromDir, timeFormat } = require('../utils')
+
+const constants = {
+ DIRECTORY: 'directory',
+ FILE: 'file',
+}
+
+function safeReadDirSync(path) {
+ let dirData = {}
+ try {
+ /**
+ * to make sure it's ordered like such rules, link issue: https://github.com/nodejs/node/issues/3232
+ * 1.x 1.x
+ * 2.x instead of 10.x
+ * 10.x 2.x
+ */
+ dirData = fs.readdirSync(path).sort((dir1, dir2) => {
+ const dir1Digit = getDigitFromDir(dir1)
+ const dir2Digit = getDigitFromDir(dir2)
+ if (dir1Digit && dir2Digit) {
+ return dir1Digit - dir2Digit
+ }
+ return 0
+ })
+ } catch (ex) {
+ if (ex.code === 'EACCES')
+ // User does not have permissions, ignore directory
+ // eslint-disable-next-line brace-style
+ { return null }
+ throw ex
+ }
+ return dirData
+}
+
+// collect unique tags from all articles.
+const tagsArr = []
+
+/** 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. 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 = '',
+ mapTagsWithArticle
+}) {
+ const name = PATH.basename(path, '.md')
+ const item = { name }
+ const routePropsCurrent = `${routePath}/${name}`
+ if (!options.prerender) {
+ item.path = path
+ }
+ let stats
+ try {
+ stats = fs.statSync(path)
+ } catch (e) {
+ return null
+ }
+
+ // Skip if it matches the exclude regex
+ if (options && options.exclude && options.exclude.test(path)) return null
+
+ if (stats.isFile()) {
+ const ext = PATH.extname(path).toLowerCase()
+
+ // Skip if it does not match the extension regex
+ if (options && options.extensions && !options.extensions.test(ext)) { return null }
+
+ if (options && options.mdconf) {
+ item.type = constants.FILE
+ 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) {
+ replaceForFrontMatter({
+ path,
+ target: `\n`
+ })
+ }
+ if (contentMatch && contentMatch[1].indexOf('abbrlink') === -1) {
+ replaceForFrontMatter({
+ path,
+ source: contentMatch[1],
+ target: `\nabbrlink: ${randomId}${contentMatch[1]}`
+ })
+ console.log('✅ replaceForFrontMatter success')
+ }
+ }
+
+ const yamlParse = contentMatch ? YAML.parse(contentMatch[1]) : {}
+ const { tags: articleTags, abbrlink } = yamlParse
+ 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]
+ const articleTagIndex = tagsArr.indexOf(articleTag)
+ if (articleTagIndex > -1) {
+ mapTagsWithArticle[articleTagIndex]['mapArticle'].push({
+ path: abbrlink ? `/${abbrlink}` : routePropsCurrent,
+ title: name
+ })
+ } else {
+ tagsArr.push(cpArticleTags[i])
+ mapTagsWithArticle.push({
+ tagName: cpArticleTags[i],
+ mapArticle: [{
+ path: abbrlink ? `/${abbrlink}` : routePropsCurrent,
+ title: name
+ }]
+ })
+ }
+ }
+ }
+
+ 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`)
+ 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)
+ if (dirData === null) return null
+ item.children = dirData
+ .map(child =>
+ directoryTree({
+ path: PATH.join(path, child),
+ options,
+ routePath: routePropsCurrent,
+ mapTagsWithArticle
+ }),
+ )
+ .filter(e => !!e)
+ item.type = constants.DIRECTORY
+ if (!options.prerender) {
+ item.size = item.children.reduce((prev, cur) => prev + cur.size, 0)
+ }
+ } else {
+ return null // Or set item.size = 0 for devices, FIFO and sockets ?
+ }
+ return item
+}
+
+module.exports = {
+ directoryTree
+}
diff --git a/packages/crd-scripts/src/conf/path.js b/packages/crd-scripts/src/conf/path.js
new file mode 100644
index 00000000..2b6b9624
--- /dev/null
+++ b/packages/crd-scripts/src/conf/path.js
@@ -0,0 +1,143 @@
+const path = require('path')
+const fs = require('fs')
+const { execSync } = require('child_process')
+const { resolveApp, docsConfig, getDocsConfig } = require('crd-utils')
+const chalk = require('chalk')
+
+// handle the problem of symbol in any platform
+const appDirectory = fs.realpathSync(process.cwd())
+
+const modPath = resolveApp('node_modules')
+// get config crd from package.json
+function getCrdConf() {
+ const packagePath = resolveApp('./package.json')
+ let conf = {}
+ if (fs.existsSync(packagePath)) {
+ const confPkg = require(packagePath); // eslint-disable-line
+ conf = confPkg.crd
+ }
+ return conf
+}
+
+function getConfigFilePath(fileName, type) {
+ const conf = getCrdConf()
+ // read config
+ if (conf && conf[type]) {
+ // load theme dir
+ 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 in default root dir.
+ return _filepath
+ }
+ return false
+}
+
+// Get favicon path
+const faviconPath = () => {
+ const _path = getConfigFilePath('./favicon.ico', 'favicon')
+ if (_path) return _path
+ // the path'll be writen dynamiclly in the future
+ return resolveApp('node_modules/crd-theme/favicon.ico')
+}
+
+// Get logo path
+const logoPath = () => {
+ const _path = getConfigFilePath('./logo.svg', 'logo')
+ if (_path) return _path
+ return false
+}
+
+let theme = ''
+// theme in develop mode.
+let devTheme = false
+
+const getTheme = () => {
+ if (docsConfig) {
+ const docsConfigObj = getDocsConfig()
+ if (!docsConfigObj) return
+ if (docsConfigObj.devTheme) {
+ devTheme = docsConfigObj.devTheme
+ theme = docsConfigObj.devTheme
+ } else {
+ theme = docsConfigObj.theme
+
+ // install custom theme
+ if (!fs.existsSync(resolveApp(`node_modules/${theme}`))) {
+ // todo: chalkblue(xxx) not show in the terminal
+ chalk.blue(`Install theme ${theme}`)
+ // -W means ignore-workspace-root-check
+ execSync(`yarn add ${theme} -D -W`)
+ chalk.blue(`Install theme ${theme} done`)
+ } else {
+ chalk.blue(`Upgrade theme ${theme}`)
+ // -W means ignore-workspace-root-check
+ execSync(`yarn upgrade ${theme}`)
+ chalk.blue(`Upgrade theme ${theme} done`)
+ }
+ }
+ }
+}
+
+getTheme()
+
+// get exclude folders
+function getExcludeFoldersRegExp() {
+ if (!fs.existsSync(modPath)) return []
+ let regexp = fs.readdirSync(modPath)
+ /** whitelist to include */
+ const whiteListRegExp = new RegExp(`create-react-doc(.*)|crd-scripts|crd-theme|${theme}`)
+ regexp = regexp.filter(
+ item => !whiteListRegExp.test(item),
+ // item => !/create-react-doc(.*)|crd-scripts|crd-theme/.test(item),
+ )
+ regexp = regexp.map((item) => {
+ let rgxPath = `node_modules${path.sep}${item}`
+ if (path.sep === '\\') {
+ // to watch: is '\\' needful?
+ rgxPath = `node_modules\\${path.sep}${item}`
+ }
+ return new RegExp(rgxPath)
+ })
+ return regexp
+}
+
+// crd tool dir
+const toolDirectory = fs.realpathSync(__dirname)
+const resolveTool = relativePath => path.resolve(toolDirectory, relativePath)
+
+module.exports = {
+ // markdown dir
+ crdConf: getCrdConf(),
+ defaultTheme: devTheme
+ ? resolveApp(`${devTheme}`)
+ : resolveApp(`node_modules/${theme}`),
+ defaultNodeModules: modPath,
+ projectPath: appDirectory,
+ publicPath: '',
+ logoPath: logoPath(),
+ // crd tool dir
+ getExcludeFoldersRegExp: getExcludeFoldersRegExp(),
+ crdPackage: resolveTool('../../package.json'),
+ defaultFaviconPath: faviconPath(),
+ appIndexJs: resolveTool('../web/index.js'),
+ appDir: resolveTool('../web'),
+}
diff --git a/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js
new file mode 100644
index 00000000..817894b1
--- /dev/null
+++ b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js
@@ -0,0 +1,82 @@
+// 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 replacePath(dirs, path) {
+ for (let i = 0; i < dirs.length; i += 1) {
+ const element = PATH.dirname(dirs[i])
+ const reg = new RegExp(`^${element}`, 'gi')
+ if (reg.test(path)) {
+ path = path.replace(reg, '')
+ break
+ }
+ }
+ return path
+}
+
+function getRelativePath(arr, relativePath, dirs) {
+ const pathArr = []
+ arr.forEach((item) => {
+ if (relativePath && item.path) {
+ item.path = replacePath(dirs, item.path)
+ }
+ if (item.children && item.children.length > 0) {
+ item.children = getRelativePath(item.children, relativePath, dirs)
+ }
+ const notInGitIgnore = !ifInGitIgnore(item.path.replace(PATH.sep, ''))
+ if (notInGitIgnore) {
+ pathArr.push(item)
+ }
+ })
+ return pathArr
+}
+
+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 = this.getOptions() || {}
+ const { include, directoryTrees } = options
+ const { dir, relativePath, ...otherProps } = directoryTrees
+ 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()
+ if (directoryTrees && (!include || include.test(this.resourcePath))) {
+ const dirs = Array.isArray(dir) ? dir : [dir]
+ const dirTree = dirs.map(path => directoryTree({
+ path,
+ options: otherProps,
+ }))
+
+ const filemd = getAllWatchPath(dirTree)
+ filemd.forEach((fileItem) => {
+ this.addDependency(fileItem)
+ })
+ // replace full file path with relative path
+ content = getRelativePath(
+ dirTree,
+ relativePath,
+ dirs,
+ )
+ }
+ 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
new file mode 100644
index 00000000..9853e7be
--- /dev/null
+++ b/packages/crd-scripts/src/conf/webpack.config.dev.js
@@ -0,0 +1,141 @@
+const autoprefixer = require('autoprefixer')
+const webpack = require('webpack')
+const path = require('path')
+const upath = require('upath')
+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('./getDirTree')
+const config = require('./webpack.config')
+const paths = require('./path')
+
+module.exports = function (cmd) {
+ const docsConfig = getDocsConfig()
+ const { mapTagsWithArticle } = getDirTree(cmd)
+ config.mode = 'development'
+ config.devtool = 'eval-source-map'
+ config.entry = [
+ require.resolve('react-hot-loader/patch'),
+ 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 = []
+ loaders.push({
+ // Process JS with Babel.
+ test: /\.(js|jsx)$/,
+ exclude: paths.getExcludeFoldersRegExp.concat(/\.(cache)/),
+ use: [
+ {
+ loader: require.resolve('string-replace-loader'),
+ options: {
+ multiple: [
+ { search: '__project_root__', replace: upath.normalizeSafe(paths.projectPath), flags: 'ig' },
+ { search: '__project_theme__', replace: upath.normalizeSafe(paths.defaultTheme), flags: 'ig' },
+ ],
+ },
+ },
+ {
+ 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',
+ }
+ },
+ ],
+ })
+ // https://ilikekillnerds.com/2018/03/disable-webpack-4-native-json-loader/
+ loaders.push({
+ test: /crd\.json$/,
+ // 禁用 Webpack 4 本身的 JSON 加载程序
+ type: 'javascript/auto',
+ use: [
+ {
+ loader: `${path.join(__dirname, './rawTreeReplaceLoader.js')}`,
+ options: {
+ include: /crd\.json$/,
+ directoryTrees: {
+ 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: '[local]--[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 = {
+ // 将模块名称添加到工厂功能,以便它们显示在浏览器分析器中。
+ // 当接收到热更新信号时,在浏览器 console 控制台打印更多可读性高的模块名称等信息
+ moduleIds: 'named',
+ }
+
+ config.plugins = config.plugins.concat([
+ new webpack.DefinePlugin({
+ env: JSON.stringify('dev'),
+ mapTagsWithArticle: JSON.stringify(mapTagsWithArticle)
+ }),
+ new webpack.HotModuleReplacementPlugin(),
+ new HtmlWebpackPlugin({
+ inject: true,
+ favicon: paths.defaultFaviconPath,
+ template: defaultHTMLPath,
+ title: docsConfig && docsConfig.title ? docsConfig.title : 'Create React Doc',
+ }),
+ new FriendlyErrorsWebpackPlugin({
+ clearConsole: true,
+ }),
+ ])
+ return config
+}
diff --git a/packages/crd-scripts/src/conf/webpack.config.js b/packages/crd-scripts/src/conf/webpack.config.js
new file mode 100644
index 00000000..86f4cd4d
--- /dev/null
+++ b/packages/crd-scripts/src/conf/webpack.config.js
@@ -0,0 +1,138 @@
+/* eslint-disable global-require */
+/* eslint-disable import/no-dynamic-require */
+const webpack = require('webpack')
+const webpackbar = require('webpackbar')
+const fs = require('fs')
+const { resolveApp, docsConfig, 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')
+
+const define = {
+ FOOTER: null,
+ DOCSCONFIG: null,
+ INJECT: null,
+}
+if (paths.crdConf && paths.crdConf.footer && typeof paths.crdConf.footer === 'string') {
+ define.FOOTER = JSON.stringify(paths.crdConf.footer)
+}
+/* custom define docs config */
+if (docsConfig) {
+ // const searchContent = getSearchContent();
+ 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 docsConfigObj
+ if (docsConfigObj && docsConfigObj.inject && fs.existsSync(resolveApp(docsConfigObj.inject))) {
+ define.INJECT = require(resolveApp(docsConfigObj.inject))
+ }
+}
+
+module.exports = {
+ entry: {},
+ output: {
+ path: docsBuildDist,
+ publicPath: paths.publicPath,
+ filename: 'js/[name].[hash:8].js',
+ chunkFilename: 'js/[name].[hash:8].js',
+ },
+ module: {
+ rules: [
+ {
+ // “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: /crd\.logo\.svg$/,
+ path: paths.logoPath,
+ },
+ ],
+ },
+ },
+ {
+ test: /\.md$/,
+ use: [
+ {
+ 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'),
+ options: {
+ remarkPlugins: [
+ [
+ remarkMath,
+ {
+ /* options */
+ },
+ ],
+ ],
+ rehypePlugins: [
+ [
+ rehypeKatex,
+ {
+ /* options */
+ },
+ ],
+ ],
+ },
+ },
+ ],
+ exclude: /(node_modules)/,
+ },
+ // “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: [
+ // eslint-disable-next-line new-cap
+ new webpackbar({ name: pkg.name }),
+ new webpack.DefinePlugin({
+ VERSION: JSON.stringify(pkg.version),
+ ...define,
+ }),
+ // fix "process is not defined" error:
+ new webpack.ProvidePlugin({
+ process: 'process/browser',
+ }),
+ ],
+ resolve: {
+ fallback: {
+ path: require.resolve('path-browserify'),
+ },
+ },
+}
diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js
new file mode 100755
index 00000000..6a83103c
--- /dev/null
+++ b/packages/crd-scripts/src/conf/webpack.config.prod.js
@@ -0,0 +1,216 @@
+const autoprefixer = require('autoprefixer')
+const path = require('path')
+const upath = require('upath')
+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('crd-prerender-spa-plugin')
+const { generateSiteMap } = require('crd-generator-sitemap')
+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 { getDirTree } = require('./getDirTree')
+
+const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
+
+module.exports = function (cmd) {
+ const docsConfig = getDocsConfig()
+ const { dirTree, mapTagsWithArticle } = getDirTree(cmd)
+ const routes = getPrerenderRoutes(dirTree)
+
+ config.mode = 'production'
+ config.entry = [paths.appIndexJs]
+ // 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 ? `${docsBuildDist}/${docsConfig.repo}` : docsBuildDist
+ config.module.rules = config.module.rules.map((item) => {
+ if (item.oneOf) {
+ const loaders = []
+ loaders.push({
+ // Process JS with Babel.
+ test: /\.(js|jsx)$/,
+ exclude: paths.getExcludeFoldersRegExp.concat(/\.(cache)/),
+ use: [
+ {
+ loader: require.resolve('string-replace-loader'),
+ options: {
+ multiple: [
+ { search: '__project_root__', replace: upath.normalizeSafe(paths.projectPath), flags: 'ig' },
+ { search: '__project_theme__', replace: upath.normalizeSafe(paths.defaultTheme), flags: 'ig' },
+ ],
+ },
+ },
+ {
+ 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',
+ }
+ },
+ ],
+ })
+ // https://ilikekillnerds.com/2018/03/disable-webpack-4-native-json-loader/
+ loaders.push({
+ test: /crd\.json$/,
+ // 禁用 Webpack 4 本身的 JSON 加载程序
+ type: 'javascript/auto',
+ use: [
+ {
+ loader: `${path.join(__dirname, './rawTreeReplaceLoader.js')}`,
+ options: {
+ include: /crd\.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: '[local]-[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 = {
+ // minimize: true,
+ // minimizer: [
+ // // For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`), uncomment the next line
+ // // `...`,
+ // new CssMinimizerPlugin(),
+ // ],
+ }
+
+ config.plugins = config.plugins.concat([
+ new webpack.DefinePlugin({
+ env: JSON.stringify('prod'),
+ mapTagsWithArticle: JSON.stringify(mapTagsWithArticle)
+ }),
+ new HtmlWebpackPlugin({
+ inject: true,
+ favicon: paths.defaultFaviconPath,
+ template: defaultHTMLPath,
+ title:
+ docsConfig && docsConfig.title ? docsConfig.title : 'Create React Doc',
+ minify: {
+ removeAttributeQuotes: true,
+ collapseWhitespace: true,
+ html5: true,
+ minifyCSS: true,
+ removeComments: true,
+ removeEmptyAttributes: true,
+ },
+ }),
+ new CopyMarkdownImageWebpackPlugin({
+ dir: cmd.markdownPaths,
+ toDir: config.output.path,
+ }),
+ // 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',
+ }),
+ 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`,
+ // 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(`${docsBuildDist}/${docsConfig.repo}`, docsBuildDist)
+ await fs.remove(`${docsBuildDist}/${docsConfig.repo}`)
+ 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'
+ // 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) {
+ fs.writeFileSync(`${docsBuildDist}/sitemap.xml`, generateSiteMap(routes))
+ }
+ }
+ console.log('✅ generate sitemap 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`.
+ 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,
+ // https://pptr.dev/#?product=Puppeteer&version=v5.5.0&show=api-pagegotourl-options
+ navigationOptions: {
+ timeout: 0
+ }
+ }),
+ }),
+ ])
+ return config
+}
diff --git a/packages/crd-scripts/src/conf/webpack.config.server.js b/packages/crd-scripts/src/conf/webpack.config.server.js
new file mode 100644
index 00000000..4de9437d
--- /dev/null
+++ b/packages/crd-scripts/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选项提供的文件。
+ // it'll reload page when file change.
+ watchContentBase: true,
+ // avoid cpu overload in some case
+ watchOptions: {
+ ignored: /node_modules/,
+ },
+ }
+}
diff --git a/packages/crd-scripts/src/deploy.js b/packages/crd-scripts/src/deploy.js
new file mode 100644
index 00000000..3f48e5c5
--- /dev/null
+++ b/packages/crd-scripts/src/deploy.js
@@ -0,0 +1,40 @@
+const ghpages = require('gh-pages')
+const loading = require('loading-cli')
+
+const log = console.log; // eslint-disable-line
+
+module.exports = function server(cmd, docsConfig) {
+ if (!docsConfig) {
+ console.log('please check config.yml in root dir!\n')
+ return
+ }
+ if (!docsConfig.user || !docsConfig.repo) {
+ console.log('please check user and repo in config.yml!\n')
+ return
+ }
+ const { user, repo, publish } = docsConfig
+ log(' Start deploy to your git repo'.green)
+ const load = loading({
+ text: 'Please wait ...'.blue,
+ color: 'blue',
+ interval: 100,
+ stream: process.stdout,
+ }).start()
+
+ ghpages.publish(
+ cmd.output,
+ {
+ branch: cmd.branch,
+ repo: publish || `https://github.com/${user}/${repo}.git`,
+ 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/packages/crd-scripts/src/generate.js b/packages/crd-scripts/src/generate.js
new file mode 100644
index 00000000..89043823
--- /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-scripts/src/server.js b/packages/crd-scripts/src/server.js
new file mode 100644
index 00000000..a30fe164
--- /dev/null
+++ b/packages/crd-scripts/src/server.js
@@ -0,0 +1,52 @@
+const webpack = require('webpack')
+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')
+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) {
+ if (!fs.existsSync(docsConfig)) {
+ console.log('please check config.yml in root dir!\n')
+ return
+ }
+ 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
+ // print log after being compiled
+ 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/packages/crd-scripts/src/utils/index.js b/packages/crd-scripts/src/utils/index.js
new file mode 100644
index 00000000..5b9af2be
--- /dev/null
+++ b/packages/crd-scripts/src/utils/index.js
@@ -0,0 +1,52 @@
+const fs = require('fs')
+const { docsGitIgnore, searchFilePath } = require('crd-utils')
+
+/**
+ * judege cur file if in git ignore.
+ */
+exports.ifInGitIgnore = (mdfilePathInProject) => {
+ let gitIgnoreContentArr = []
+ if (fs.existsSync(docsGitIgnore)) {
+ const gitIgnoreContent = fs.readFileSync(docsGitIgnore)
+ gitIgnoreContentArr = gitIgnoreContent.toString().split('\n')
+ }
+ return gitIgnoreContentArr.indexOf(mdfilePathInProject) > -1
+}
+
+/**
+ * to get dight from cur dir.
+ * If there are order && unorder file in one same folder, the unorder file'll be in front of order file.
+ * eg:
+ * '1.xx' => 1
+ * 'xx' => 0
+ */
+exports.getDigitFromDir = (dir) => {
+ const matchedResult = dir.match(/^((\d)*)\.(\s|\S)*$/)
+ if (matchedResult && matchedResult[1]) {
+ return parseInt(matchedResult[1], 10)
+ }
+ return 0
+}
+
+function paddingTwoDigits(digit) {
+ return digit < 10 ? `0${digit}` : digit
+}
+
+/**
+ * format time
+ */
+exports.timeFormat = (date) => {
+ if (isNaN(date.getFullYear()) || isNaN(date.getMonth()) || isNaN(date.getDate())) return null
+ return `${date.getFullYear()}-${paddingTwoDigits(
+ date.getMonth() + 1,
+ )}-${paddingTwoDigits(date.getDate())}`
+}
+
+exports.getSearchContent = () => {
+ if (!fs.existsSync(searchFilePath)) {
+ console.log('there is no find .cache/search.js in root dir!\n')
+ return null
+ }
+ return fs.readFileSync(searchFilePath)
+}
+
diff --git a/packages/crd-scripts/src/utils/initCache.js b/packages/crd-scripts/src/utils/initCache.js
new file mode 100644
index 00000000..5105856d
--- /dev/null
+++ b/packages/crd-scripts/src/utils/initCache.js
@@ -0,0 +1,71 @@
+const write = require('write')
+const path = require('path')
+const { cacheDirPath, getDocsConfig } = require('crd-utils')
+const { directoryTree } = require('../conf/node-directory-tree')
+
+module.exports = function (program, cb) {
+ const treeData = program.markdownPaths.map((markdownPath) => {
+ return directoryTree({
+ path: markdownPath,
+ options: {
+ mdconf: true, // Markdown config for exsiting file.
+ extensions: /\.md/,
+ },
+ })
+ })
+ // to collect search data
+ const searchData = []
+ const docsConfig = getDocsConfig()
+ const useSearchPlugin = docsConfig.search && docsConfig.host
+
+ function dfsMap(data) {
+ // eslint-disable-next-line no-plusplus
+ for (let i = 0; i < data.length; i++) {
+ if (data[i].children) {
+ dfsMap(data[i].children)
+ } else {
+ const searchMapKeys = docsConfig.search_map ? Object.keys(docsConfig.search_map) : []
+ // eslint-disable-next-line no-plusplus
+ for (let x = 0; x < searchMapKeys.length; x++) {
+ if (data[i].relative) {
+ const searchMapIndex = data[i].relative.indexOf(searchMapKeys[x])
+ if (searchMapIndex !== -1 && typeof searchMapIndex === 'number') {
+ const effectedPath = data[i].relative.replace(
+ searchMapKeys[x],
+ docsConfig.search_map[searchMapKeys[x]],
+ )
+ searchData.push({
+ title: data[i].name,
+ url: `${effectedPath.replace(/.md/g, '')}`,
+ content: data[i].content,
+ })
+ break
+ }
+ }
+ }
+ }
+ }
+ }
+ if (useSearchPlugin) {
+ // README
+ searchData.push({
+ title: 'README',
+ url: 'README',
+ content: treeData[0].content,
+ })
+ // map treeData to generate search data source
+ dfsMap(treeData)
+ const writeSearchPath = path.resolve(
+ process.cwd(),
+ cacheDirPath,
+ 'search.js',
+ )
+ write.sync(
+ writeSearchPath,
+ `${JSON.stringify(
+ searchData,
+ )}`,
+ )
+ }
+ cb()
+}
diff --git a/packages/crd-scripts/src/web/Router.js b/packages/crd-scripts/src/web/Router.js
new file mode 100644
index 00000000..b8502ed7
--- /dev/null
+++ b/packages/crd-scripts/src/web/Router.js
@@ -0,0 +1,75 @@
+import { BrowserRouter, Route, Routes } from 'react-router-dom'
+import theme from 'crd-theme'
+import menuSource from './crd.json'
+
+/**
+ * serialize router data
+ */
+function routeData(data, arrayRoute = [], routePath = '/', article) {
+ data.forEach((item) => {
+ const routePropsCurrent = `${routePath}${item.name}`.replace(/.md$/, '')
+ 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') {
+ if (item.children && item.children.length > 0) {
+ 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.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, '')
+ if (!item.mdconf) {
+ item.props = { isEmpty: true }
+ }
+ }
+ item.routePath = routePropsCurrent
+ item.article = article || item.name
+ arr.push(item)
+ })
+ return arr
+}
+
+const RoutersContainer = ({ ...props }) => {
+ return (
+
+
+
+ )
+}
+
+export default function RouterRoot() {
+ return (
+
+
+
+ )
+}
diff --git a/packages/crd-scripts/src/web/crd.json b/packages/crd-scripts/src/web/crd.json
new file mode 100644
index 00000000..fe51488c
--- /dev/null
+++ b/packages/crd-scripts/src/web/crd.json
@@ -0,0 +1 @@
+[]
diff --git a/packages/crd-scripts/src/web/index.js b/packages/crd-scripts/src/web/index.js
new file mode 100644
index 00000000..ef26ec5b
--- /dev/null
+++ b/packages/crd-scripts/src/web/index.js
@@ -0,0 +1,33 @@
+import { hydrate } from 'react-dom'
+import { renderToString } from 'react-dom/server';
+// import { hydrateRoot } from 'react-dom/client'
+import { ifDev, ifPrerender } from 'crd-client-utils'
+import RouterRoot from './Router'
+
+if (ifDev) {
+ // dev render
+ document.getElementById('root').innerHTML = renderToString( )
+ hydrate(
+ ,
+ document.getElementById('root'),
+ )
+ // hydrateRoot(
+ // document.getElementById('root'),
+ // ,
+ // )
+} else if (ifPrerender) {
+ // prerender
+ document.getElementById('root').innerHTML = renderToString( )
+} else {
+ // prod render:
+ // It'll cause some [unkown error](https://github.com/MuYunyun/create-react-doc/issues/278) using hydrateRoot here.
+ // So still using hydrate temporarily.
+ hydrate(
+ ,
+ document.getElementById('root'),
+ )
+ // hydrateRoot(
+ // document.getElementById('root'),
+ // ,
+ // )
+}
diff --git a/packages/crd-seed/.npmrc b/packages/crd-seed/.npmrc
new file mode 100644
index 00000000..7edb6af8
--- /dev/null
+++ b/packages/crd-seed/.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-seed/README.md b/packages/crd-seed/README.md
new file mode 100644
index 00000000..96c7d883
--- /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/90d3e357a31649b9466a828a92b6d88d.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/component/Affix/affix.js b/packages/crd-seed/component/Affix/affix.js
new file mode 100644
index 00000000..d2bf4965
--- /dev/null
+++ b/packages/crd-seed/component/Affix/affix.js
@@ -0,0 +1,129 @@
+import { useState, useEffect, useRef } from 'react'
+import { throttle } from './utils'
+
+const Affix = ({
+ offsetTop,
+ offsetBottom,
+ children,
+ target,
+ onChange,
+ className,
+ wrapperClassName,
+ style,
+ width,
+ affixStyle,
+}) => {
+ const placeholderRef = useRef(null)
+ const wrapperRef = useRef(null)
+ const widthRef = useRef(width)
+ const [positionStyle, setPositionStyle] = useState({})
+ // 滚动元素
+ let scrollElm = window
+ // 是否是绝对布局模式
+ const fixedRef = useRef(false)
+ const [fixed, setFixed] = useState(fixedRef.current)
+
+ 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 = () => {
+ const { width: wrapperRefWidth, height: wrapperRefHeight } = wrapperRef.current
+ ? wrapperRef.current.getBoundingClientRect()
+ : {}
+ placeholderRef.current &&
+ (placeholderRef.current.style.height = `${wrapperRefHeight}px`)
+ placeholderRef.current &&
+ (placeholderRef.current.style.width =
+ typeof width === 'number' ? `${width}px` : `${wrapperRefWidth}px`)
+ wrapperRef.current &&
+ (wrapperRef.current.style.width =
+ typeof width === 'number' ? `${width}px` : `${wrapperRefWidth}px`)
+ }
+ const updateFixed = () => {
+ fixedRef.current = !fixedRef.current
+ setFixed(fixedRef.current)
+ }
+ const handleScroll = () => {
+ const rect =
+ placeholderRef.current && placeholderRef.current.getBoundingClientRect()
+ if (!rect) return
+ let { top, bottom } = rect
+ const updatePositionStyle = {
+ width:
+ typeof widthRef.current === 'number'
+ ? widthRef.current
+ : placeholderRef.current &&
+ placeholderRef.current.getBoundingClientRect().width,
+ zIndex: 999,
+ }
+ let containerTop = 0 // 容器距离视口上侧的距离
+ let containerBottom = 0 // 容器距离视口下侧的距离
+
+ if (scrollElm === window) {
+ bottom = window.innerHeight - bottom
+ } else {
+ const containerRect = scrollElm && scrollElm.getBoundingClientRect()
+ containerTop = containerRect && containerRect.top
+ containerBottom = containerRect && containerRect.bottom
+ top -= containerTop // 距离容器顶部的距离
+ bottom = containerBottom - bottom // 距离容器底部的距离
+ }
+
+ if (
+ (validValue(offsetTop) && top <= offsetTop) ||
+ (validValue(offsetBottom) && bottom <= offsetBottom)
+ ) {
+ if (!fixedRef.current) {
+ updatePositionStyle.position = 'fixed'
+ validValue(offsetTop) && (updatePositionStyle.top = offsetTop + containerTop)
+ validValue(offsetBottom) &&
+ (updatePositionStyle.bottom =
+ scrollElm === window
+ ? bottom
+ : window.innerHeight - (containerBottom - offsetBottom))
+ onChange && onChange(true)
+ updateFixed()
+ setPositionStyle(updatePositionStyle)
+ }
+ } else if (fixedRef.current) {
+ updatePositionStyle.position = 'relative'
+ onChange && onChange(false)
+ updateFixed()
+ setPositionStyle(updatePositionStyle)
+ }
+ }
+
+ const scroll = throttle(handleScroll, 20)
+
+ return (
+
+ )
+}
+
+export default Affix
diff --git a/packages/crd-seed/component/Affix/index.js b/packages/crd-seed/component/Affix/index.js
new file mode 100644
index 00000000..11cb04b2
--- /dev/null
+++ b/packages/crd-seed/component/Affix/index.js
@@ -0,0 +1,3 @@
+import Affix from './affix'
+
+export default Affix
diff --git a/packages/crd-seed/component/Affix/utils/index.js b/packages/crd-seed/component/Affix/utils/index.js
new file mode 100644
index 00000000..6f0f7334
--- /dev/null
+++ b/packages/crd-seed/component/Affix/utils/index.js
@@ -0,0 +1,25 @@
+const throttle = (fn, wait) => {
+ let inThrottle
+ let lastFn
+ let lastTime
+ return function () {
+ const context = this
+ // eslint-disable-next-line prefer-rest-params
+ const args = arguments
+ if (!inThrottle) {
+ fn.apply(context, args)
+ lastTime = Date.now()
+ inThrottle = true
+ } else {
+ clearTimeout(lastFn)
+ lastFn = setTimeout(() => {
+ if (wait - (Date.now() - lastTime) <= 0) {
+ fn.apply(context, args)
+ lastTime = Date.now()
+ }
+ }, Math.max(wait - (Date.now() - lastTime), 0))
+ }
+ }
+}
+
+export { throttle }
diff --git a/packages/crd-seed/component/Footer/index.js b/packages/crd-seed/component/Footer/index.js
new file mode 100644
index 00000000..3fa51f6d
--- /dev/null
+++ b/packages/crd-seed/component/Footer/index.js
@@ -0,0 +1,41 @@
+import cx from 'classnames'
+import styles from './index.less'
+
+const version = VERSION; // eslint-disable-line
+const footer = FOOTER; // eslint-disable-line
+
+const FooterView = ({ inlineCollapsed }) => {
+ return (
+
+ {footer ? (
+
+ ) : (
+ <>
+
+
+
+ |
+
+
+ >
+
+ )}
+
+ )
+}
+
+export default FooterView
diff --git a/packages/crd-seed/component/Footer/index.less b/packages/crd-seed/component/Footer/index.less
new file mode 100644
index 00000000..651028d7
--- /dev/null
+++ b/packages/crd-seed/component/Footer/index.less
@@ -0,0 +1,34 @@
+.footer {
+ font-size: 14px;
+ text-align: center;
+ border-top: 1px solid #e9e9e9;
+ margin: 50px 0 0 240px;
+ padding: 20px 0 50px 0;
+ clear: both;
+ color: #999;
+ transition: margin .2s ease-in-out;
+
+ a {
+ color: #758AC5;
+
+ &:hover {
+ color: #0800ff;
+ }
+ }
+
+ .powered_by {
+ margin-bottom: 8px;
+ }
+
+ &-inlineCollapsed {
+ margin: 50px 0 0 0;
+ }
+
+ .uv_count, .pv_count {
+ margin-left: 5px;
+ }
+
+ .split {
+ margin: 0 5px;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-seed/component/Header/index.js b/packages/crd-seed/component/Header/index.js
new file mode 100644
index 00000000..170c959a
--- /dev/null
+++ b/packages/crd-seed/component/Header/index.js
@@ -0,0 +1,90 @@
+import { useState } from 'react'
+import cx from 'classnames'
+import { Link } from 'react-router-dom'
+import Switch from 'react-switch'
+import { ifProd } from 'crd-client-utils'
+import { isMobile } from '../../utils'
+import Search from '../Search'
+import styles from './index.less'
+
+const Header = ({
+ className,
+ logo,
+}) => {
+ // eslint-disable-next-line no-undef
+ const { user, repo, tags } = DOCSCONFIG || {}
+ const [checked, setChecked] = useState(false)
+ const handleChange = (value) => {
+ value
+ ? document.body.classList.add(styles.darkMode)
+ : document.body.classList.remove(styles.darkMode)
+ setChecked(value)
+ }
+ return (
+
+
+
+
+ {logo &&
}
+ {!isMobile && (
+
+ {(DOCSCONFIG && DOCSCONFIG.title) || 'Create React Doc'}
+
+ )}
+
+
+ {DOCSCONFIG && DOCSCONFIG.search ?
: null}
+
+
+ {
+ tags
+ ?
+ 标签
+
+ : null
+ }
+
+ }
+ checkedIcon={
+
+ }
+ />
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default Header
diff --git a/packages/crd-seed/component/Header/index.less b/packages/crd-seed/component/Header/index.less
new file mode 100644
index 00000000..80bc804a
--- /dev/null
+++ b/packages/crd-seed/component/Header/index.less
@@ -0,0 +1,117 @@
+@import '../../style/base.less';
+
+.logo {
+ float: left;
+ padding: 0 0 0 15px;
+
+ img {
+ height: 28px;
+ vertical-align: middle;
+ }
+
+ span {
+ vertical-align: middle;
+ }
+
+ img+span {
+ margin-left: 10px;
+ }
+}
+
+.header {
+ box-shadow: 0 2px 8px #f0f1f2;
+ line-height: 60px;
+ height: 60px;
+ position: relative;
+ width: 100%;
+ top: 0;
+ z-index: @header-zIndex;
+ display: flex;
+
+ .wrapper {
+ flex: 1;
+ display: flex;
+ align-items: center;
+
+ .titleLink {
+ display: inline-block;
+ }
+
+ .search {
+ margin-left: 40px;
+ max-width: 200px;
+ display: flex;
+ align-items: center;
+ }
+
+ .select {
+ width: 200px;
+ }
+ }
+
+ .rightArea {
+ display: flex;
+ align-items: center;
+
+ .sun {
+ position: absolute;
+ left: 5px;
+ top: 4px;
+ }
+
+ .moon {
+ position: absolute;
+ right: 5px;
+ top: 4px;
+ }
+
+ .github-corner {
+ display: block;
+
+ &:hover {
+ .octo-arm {
+ animation: octocat-wave 560ms ease-in-out;
+ }
+ }
+ }
+
+ svg {
+ vertical-align: bottom;
+ }
+ }
+}
+
+.tags {
+ font-size: 15px;
+ margin-right: 16px;
+}
+
+@keyframes octocat-wave {
+ 0%, 100% {
+ transform: rotate(0);
+ }
+ 20%, 60% {
+ transform: rotate(-25deg);
+ }
+ 40%, 80% {
+ transform: rotate(100deg);
+ }
+}
+
+.pageTitle {
+ font-size: 30px;
+ line-height: 38px;
+ color: #0d1a26;
+ font-weight: 500;
+ margin-bottom: 20px;
+ margin-top: 8px;
+ padding-left: 20px;
+}
+
+.darkMode {
+ filter: invert(100%) hue-rotate(180deg);
+
+ .no-dark-mode {
+ filter: invert(100%) hue-rotate(180deg);
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-seed/component/Icon/Icon.js b/packages/crd-seed/component/Icon/Icon.js
new file mode 100644
index 00000000..fc4cbd40
--- /dev/null
+++ b/packages/crd-seed/component/Icon/Icon.js
@@ -0,0 +1,38 @@
+import { useEffect } from 'react'
+import cx from 'classnames'
+import loadSprite from './loadSprite'
+import styles from './style/index.less'
+
+/* omit some props depends on arr */
+const omit = (props, arr) =>
+ Object.keys(props)
+ .filter(k => arr.indexOf(k) === -1)
+ // eslint-disable-next-line no-sequences
+ .reduce((acc, key) => ((acc[key] = props[key]), acc), {})
+
+function Icon(props) {
+ const { type, color, prefixCls = 'icon', size, style, className, ...rest } = props
+
+ useEffect(() => {
+ loadSprite(props)
+ }, [type])
+
+ const newClassName = cx(styles[prefixCls], className)
+ const cloneStyle = { ...style }
+ if (color) {
+ cloneStyle.color = color
+ }
+ if (size) {
+ cloneStyle.fontSize = size
+ }
+
+ const restProps = omit(rest, ['svgContent'])
+
+ return (
+
+
+
+ )
+}
+
+export default Icon
diff --git a/packages/crd-seed/component/Icon/iconsInfo.js b/packages/crd-seed/component/Icon/iconsInfo.js
new file mode 100644
index 00000000..3970706d
--- /dev/null
+++ b/packages/crd-seed/component/Icon/iconsInfo.js
@@ -0,0 +1,14 @@
+export const IconsInfo = {
+ folder:
+ ' ',
+ file:
+ ' ',
+ edit:
+ ' ',
+ 'update-time':
+ ' ',
+ 'create-time':
+ ' ',
+ search:
+ ' ',
+}
diff --git a/packages/crd-seed/component/Icon/index.js b/packages/crd-seed/component/Icon/index.js
new file mode 100644
index 00000000..dc6d0a6b
--- /dev/null
+++ b/packages/crd-seed/component/Icon/index.js
@@ -0,0 +1,3 @@
+import Icon from './Icon'
+
+export default Icon
diff --git a/packages/crd-seed/component/Icon/loadSprite.js b/packages/crd-seed/component/Icon/loadSprite.js
new file mode 100644
index 00000000..5f9feb4d
--- /dev/null
+++ b/packages/crd-seed/component/Icon/loadSprite.js
@@ -0,0 +1,64 @@
+import { IconsInfo } from './iconsInfo'
+
+/* tslint:disable:max-line-length */
+// inspried by https://github.com/kisenka/svg-sprite-loader/blob/master/runtime/browser-sprite.js
+// Much simplified, do make sure run this after document ready
+const svgSprite = contents => `
+
+
+ ${contents}
+
+
+`
+/**
+ * ' ' =>
+ * ' viewBox="0 0 1024 1024"> '
+ */
+const handleSvgContent = (svgContent) => {
+ return svgContent.split('svg')[1]
+}
+
+const renderSvgSprite = (props) => {
+ const { svgContent, type } = props
+ const customIconsInfo = svgContent
+ ? {
+ [`${type}`]: svgContent,
+ }
+ : {}
+ const mergeSvgInfo = { ...IconsInfo, ...customIconsInfo }
+ const symbols = Object.keys(mergeSvgInfo)
+ .map((iconName) => {
+ const getContent = handleSvgContent(mergeSvgInfo[iconName])
+ return ``
+ })
+ .join('')
+ return svgSprite(symbols)
+}
+
+const loadSprite = (props) => {
+ const { type, svgContent } = props
+ if (!document) {
+ return
+ }
+ const existing = document.getElementById('__CRD_SVG_SPRITE_NODE__')
+ const mountNode = document.body
+
+ if (!existing) {
+ mountNode &&
+ typeof mountNode.insertAdjacentHTML === 'function' &&
+ mountNode.insertAdjacentHTML('afterbegin', renderSvgSprite(props))
+ } else if (svgContent) {
+ const defs = existing.children[0]
+ const svgChildren = defs.children
+ const svgChildrenIds = svgChildren ? [].slice.call(svgChildren).map(r => (r).id) : []
+ if (svgChildrenIds.indexOf(type) !== -1) return
+ defs.innerHTML += ``
+ }
+}
+
+export default loadSprite
diff --git a/packages/crd-seed/component/Icon/style/index.less b/packages/crd-seed/component/Icon/style/index.less
new file mode 100644
index 00000000..382c3d3b
--- /dev/null
+++ b/packages/crd-seed/component/Icon/style/index.less
@@ -0,0 +1,8 @@
+.icon {
+ font-size: 24px;
+ vertical-align: middle;
+ fill: currentColor;
+ background-size: cover;
+ width: 1em;
+ height: 1em;
+}
diff --git a/packages/crd-seed/component/Menu/Menu.js b/packages/crd-seed/component/Menu/Menu.js
new file mode 100644
index 00000000..a2555f3b
--- /dev/null
+++ b/packages/crd-seed/component/Menu/Menu.js
@@ -0,0 +1,75 @@
+import { useState } from 'react'
+import cx from 'classnames'
+import MenuItem from './MenuItem'
+import { SubMenu } from './SubMenu'
+import { MenuProvider } from './context'
+import styles from './style/index.less'
+
+const Menu = ({
+ theme = 'light',
+ children,
+ selectedKey,
+ onSelect = () => {},
+ inlineCollapsed = false,
+ defaultOpenKeys = [],
+ menuStyle,
+ toggle,
+}) => {
+ /* 存储 hover 状态的 key 值, 在垂直模式中需要根据 hover 的 key 值高亮父节点 */
+ const [hoverKey, setHoverKey] = useState('')
+ const MenuContext = {
+ theme,
+ mode: 'inline',
+ inlineCollapsed,
+ defaultOpenKeys,
+ selectedKey,
+ onSelect,
+ hoverKey,
+ onHoverKey: setHoverKey,
+ }
+ const renderToggle = () => {
+ return (
+
+
+
+ )
+ }
+ const renderMenu = () => {
+ return (
+
+ )
+ }
+
+ return (
+
+ {renderToggle()}
+ {renderMenu()}
+
+ )
+}
+
+Menu.Item = MenuItem
+Menu.SubMenu = SubMenu
+
+export default Menu
diff --git a/packages/crd-seed/component/Menu/MenuItem.js b/packages/crd-seed/component/Menu/MenuItem.js
new file mode 100644
index 00000000..25105ad8
--- /dev/null
+++ b/packages/crd-seed/component/Menu/MenuItem.js
@@ -0,0 +1,62 @@
+import { useEffect, useRef } from 'react'
+import cx from 'classnames'
+import { getMenuStyle } from './util'
+import { useMenuContext } from './context'
+import styles from './style/index.less'
+
+function MenuItem({
+ title = '',
+ icon,
+ keyValue = '',
+ level = 0,
+}) {
+ const {
+ theme,
+ selectedKey,
+ onSelect,
+ onHoverKey,
+ inlineCollapsed
+ } = useMenuContext()
+ const menuItemRef = useRef(null)
+ const menuItemselected = keyValue.indexOf(selectedKey) > -1
+ const menuUnFoldDelayTime = 300
+
+ useEffect(() => {
+ if (menuItemselected && (inlineCollapsed === false)) {
+ setTimeout(() => {
+ menuItemRef.current.scrollIntoView({
+ block: 'center',
+ behavior: 'smooth'
+ })
+ }, menuUnFoldDelayTime)
+ }
+ }, [keyValue, selectedKey, inlineCollapsed])
+
+ const handleOnClick = () => {
+ onSelect(keyValue)
+ }
+
+ const renderMenuItem = () => {
+ return (
+ {
+ onHoverKey(keyValue)
+ }}
+ onMouseLeave={() => onHoverKey('')}
+ onClick={handleOnClick}
+ style={getMenuStyle(level, 'menuItem')}
+ ref={menuItemRef}
+ >
+ {icon ? {icon} : null}
+ {title}
+
+ )
+ }
+
+ return renderMenuItem()
+}
+
+export default MenuItem
diff --git a/packages/crd-seed/component/Menu/SubMenu.js b/packages/crd-seed/component/Menu/SubMenu.js
new file mode 100644
index 00000000..fd7170ff
--- /dev/null
+++ b/packages/crd-seed/component/Menu/SubMenu.js
@@ -0,0 +1,160 @@
+import { useState, useRef, Fragment, Children, cloneElement } from 'react'
+import cx from 'classnames'
+import { useEnhancedEffect } from 'crd-client-utils'
+import Transition from './transition'
+import { getMenuStyle } from './util'
+import { useMenuContext } from './context'
+import styles from './style/index.less'
+
+function useCurrent(
+ initialValue
+) {
+ const currentRef = useRef(initialValue)
+ const [state, setState] = useState(initialValue)
+ currentRef.current = state
+ const set = (value) => {
+ currentRef.current = value
+ setState(value)
+ }
+ const get = () => currentRef.current
+ return [get, set]
+}
+
+function SubMenu({
+ children,
+ title,
+ icon,
+ level = 0,
+ keyValue = '',
+ onTitleClick = () => {},
+}) {
+ const {
+ selectedKey,
+ mode,
+ hoverKey,
+ onHoverKey,
+ defaultOpenKeys = [],
+ } = useMenuContext()
+ const [menuOpen, setMenuOpen] = useState(defaultOpenKeys.indexOf(keyValue) !== -1)
+ const curSubmenu = useRef(null)
+ const popupSubMenu = useRef(null)
+
+ const [getParentMenuHover, setParentMenuHover] = useCurrent(false)
+
+ const gapDistance = 4
+
+ useEnhancedEffect(() => {
+ if (popupSubMenu.current && curSubmenu.current) {
+ popupSubMenu.current.style.left = `${curSubmenu.current.getBoundingClientRect().right +
+ gapDistance}px`
+ popupSubMenu.current.style.top = `${curSubmenu.current.getBoundingClientRect().top}px`
+ }
+ }, [getParentMenuHover()])
+
+ /**
+ * judege if is React Fragment.
+ */
+ function isReactFragment(variableToInspect) {
+ if (variableToInspect.type) {
+ return variableToInspect.type === Fragment
+ }
+ return variableToInspect === Fragment
+ }
+
+ /* 行内模式下, 渲染子节点 */
+ const renderChild = (child) => {
+ return (
+ // eslint-disable-next-line quotes
+ <>
+ {Children.map(child || children, (reactNode) => {
+ if (!reactNode || typeof reactNode !== 'object') {
+ return null
+ }
+ const childElement = reactNode
+ if (
+ isReactFragment(childElement) &&
+ childElement.props.children
+ ) {
+ return renderChild(childElement.props.children)
+ }
+ return cloneElement(childElement, {
+ level: level + 1,
+ ...childElement.props,
+ })
+ // eslint-disable-next-line quotes
+ })}
+ >
+ )
+ }
+
+ const handleParentMouseEnter = () => {
+ setParentMenuHover(true)
+ onHoverKey(keyValue)
+ }
+
+ const handleParentMouseLeave = () => {
+ onHoverKey('')
+ }
+
+ /* 处理 menu 开闭状态 */
+ const handleMenuStatus = () => {
+ onTitleClick(keyValue)
+ mode === 'inline' && setMenuOpen(!menuOpen)
+ }
+
+ /* 判断 subMenu 是否被选中, 当子节点被选中时, 父节点也会被高亮;
+ 同时在 vertical 模式时, 当子节点被 hover 时, 父节点也会被高亮; */
+ const judgeSubmenuSelect = (reactChildren) => {
+ const result = Children.toArray(reactChildren).some((reactNode) => {
+ if (!reactNode || typeof reactNode !== 'object') {
+ return false
+ }
+
+ const childElement = reactNode
+ // eslint-disable-next-line no-shadow
+ const { keyValue } = childElement.props
+ const originKey = keyValue ? String(keyValue) : ''
+ if (childElement.type.name === 'MenuItem') {
+ return selectedKey.split('').indexOf(originKey) !== -1 || hoverKey === originKey
+ }
+ if (childElement.type.name === 'SubMenu') {
+ return judgeSubmenuSelect(childElement.props.children) || hoverKey === originKey
+ }
+ return false
+ })
+ return result
+ }
+
+ return (
+ onHoverKey(keyValue)}
+ ref={curSubmenu}
+ >
+
+
+ {icon ? {icon} : null}
+ {title}
+
+ {mode === 'inline' ? (
+
+
+
+ ) : null}
+
+ )
+}
+
+export { SubMenu }
diff --git a/packages/crd-seed/component/Menu/context.js b/packages/crd-seed/component/Menu/context.js
new file mode 100644
index 00000000..a8d8ab50
--- /dev/null
+++ b/packages/crd-seed/component/Menu/context.js
@@ -0,0 +1,9 @@
+import { createContext, useContext } from 'react'
+
+const MenuContext = createContext(undefined)
+
+export const MenuProvider = ({ children, value }) => (
+ {children}
+)
+
+export const useMenuContext = () => useContext(MenuContext)
diff --git a/packages/crd-seed/component/Menu/index.js b/packages/crd-seed/component/Menu/index.js
new file mode 100644
index 00000000..7e045e4b
--- /dev/null
+++ b/packages/crd-seed/component/Menu/index.js
@@ -0,0 +1,3 @@
+import Menu from './Menu'
+
+export default Menu
diff --git a/packages/crd-seed/component/Menu/style/index.less b/packages/crd-seed/component/Menu/style/index.less
new file mode 100644
index 00000000..42b23e0b
--- /dev/null
+++ b/packages/crd-seed/component/Menu/style/index.less
@@ -0,0 +1,295 @@
+@import './theme.less';
+
+.menu {
+ box-sizing: border-box;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ color: @menu-color;
+ background: @menu-background;
+ user-select: none;
+ 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;
+ white-space: nowrap;
+ cursor: pointer;
+ height: 40px;
+ line-height: 40px;
+ padding: 0 16px;
+ color: @menu-color;
+ position: relative;
+ cursor: pointer;
+ // overflow: hidden;
+ // white-space: nowrap;
+ // text-overflow: ellipsis;
+
+ &-selected {
+ position: relative;
+ background: @menu-background-selected;
+ color: @menu-color-selected;
+
+ a {
+ color: @menu-color-selected!important;
+ }
+ }
+
+ /* icon */
+ i {
+ margin-right: 10px;
+ }
+
+ a {
+ color: rgba(0, 0, 0, 0.8);
+ cursor: pointer;
+ display: inline-block;
+ text-decoration: none;
+
+ &::before {
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ content: '';
+ position: absolute;
+ background-color: transparent;
+ }
+ }
+
+ &-title {
+ vertical-align: middle;
+ }
+ }
+
+ &-item:hover {
+ color: @menu-color-hover;
+
+ & .menu-icon {
+ color: @menu-color-hover;
+ }
+ }
+
+ .submenu {
+ line-height: 40px;
+ cursor: pointer;
+ overflow: hidden;
+
+ &-title {
+ position: relative;
+ padding: 0 28px 0 0;
+ font-size: 14px;
+ cursor: pointer;
+ margin-left: 20px;
+ // overflow: hidden;
+ // white-space: nowrap;
+ // text-overflow: ellipsis;
+ }
+
+ &-title:hover {
+ color: @menu-color-hover;
+
+ .submenu-arrow {
+
+ &::before,
+ &::after {
+ background: @menu-color-hover;
+ }
+ }
+ }
+
+ &-arrow {
+ display: inline-block;
+ width: 10px;
+ flex-shrink: 0;
+ // margin: 0 3px 0 1px;
+ margin: 0 3px 0 -12px;
+ position: relative;
+ top: -5px;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ width: 6px;
+ height: 1.5px;
+ background: @arrow-background;
+ transition: background .2s cubic-bezier(0.645, 0.045, 0.355, 1),
+ transform .2s cubic-bezier(0.645, 0.045, 0.355, 1),
+ top .2s cubic-bezier(0.645, 0.045, 0.355, 1),
+ -webkit-transform .2s cubic-bezier(0.645, 0.045, 0.355, 1);
+ }
+
+ &::before {
+ transform: rotate(45deg) translateY(-2px);
+ }
+
+ &::after {
+ transform: rotate(-45deg) translateY(2px);
+ }
+
+ &-open {
+ &::before {
+ transform: rotate(-45deg) translateX(2px);
+ }
+
+ &::after {
+ transform: rotate(45deg) translateX(-2px);
+ }
+ }
+ }
+
+ &-selected {
+ color: @menu-color-selected;
+ }
+ }
+
+ &-inline {
+ width: 100%;
+
+ .menu-item {
+ &-selected {
+ &::after {
+ content: '';
+ position: absolute;
+ width: 3px;
+ background: @menu-inline-selected;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ }
+ }
+ }
+
+ .submenu {
+ &-arrow {
+ &::before {
+ transform: rotate(45deg) translateY(-2px);
+ }
+
+ &::after {
+ transform: rotate(-45deg) translateY(2px);
+ }
+
+ &-open {
+ &::before {
+ transform: rotate(-45deg) translateX(2px);
+ }
+
+ &::after {
+ transform: rotate(45deg) translateX(-2px);
+ }
+ }
+ }
+ }
+
+ /* fold */
+ &-collapsed {
+ width: 0px;
+
+ .menu-item {
+ padding: 0 24px !important;
+
+ &-title {
+ opacity: 0;
+ }
+ }
+
+ .submenu {
+ &-title {
+ padding: 0 24px !important;
+
+ &-field {
+ opacity: 0;
+ }
+
+ .submenu-arrow {
+ display: none;
+ }
+ }
+ }
+ }
+ }
+
+ &-icon {
+ margin-right: 4px;
+ }
+}
+
+/* submenu fold/unfold animation */
+.collapse-transition {
+ overflow: hidden;
+ transition: height .2s ease-in-out;
+}
+
+.toggle {
+ position: absolute;
+ width: 30px;
+ height: 30px;
+ left: 240px;
+ top: 200px;
+ transition: left .2s linear;
+ box-shadow: 2px 0 8px rgba(0, 0, 0, .15);
+ border-radius: 0 4px 4px 0;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #fff;
+
+ &-icon {
+ position: relative;
+ background: 0 0;
+ width: 12px;
+ height: 2px;
+ background: #333;
+ transition: background .2s cubic-bezier(.78, .14, .15, .86);
+
+ &::before,
+ &::after {
+ content: '';
+ display: block;
+ position: absolute;
+ background: #333;
+ width: 50%;
+ height: 2px;
+ }
+
+ &::before {
+ transform: translateY(-2px) rotate(-45deg);
+ }
+
+ &::after {
+ transform: translateY(2px) rotate(45deg);
+ }
+
+ &-close {
+ background: #333;
+
+ &::before,
+ &::after {
+ content: '';
+ display: block;
+ position: absolute;
+ background: #333;
+ width: 100%;
+ height: 2px;
+ transform: rotate(0deg);
+ }
+
+ &::before {
+ top: -4px;
+ }
+
+ &::after {
+ top: 4px;
+ }
+ }
+ }
+
+ &-collapsed {
+ left: 0px;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-seed/component/Menu/style/theme.less b/packages/crd-seed/component/Menu/style/theme.less
new file mode 100644
index 00000000..096786ea
--- /dev/null
+++ b/packages/crd-seed/component/Menu/style/theme.less
@@ -0,0 +1,8 @@
+/* light */
+@menu-color: rgba(0, 0, 0, 0.65);
+@menu-background: #fff;
+@menu-color-hover: #1890ff;
+@menu-color-selected: #1890ff;
+@menu-inline-selected: #1199ee;
+@menu-background-selected: #e6f7ff;
+@arrow-background: #333;
\ No newline at end of file
diff --git a/packages/crd-seed/component/Menu/transition.js b/packages/crd-seed/component/Menu/transition.js
new file mode 100644
index 00000000..71f4546d
--- /dev/null
+++ b/packages/crd-seed/component/Menu/transition.js
@@ -0,0 +1,93 @@
+import { useEffect, useRef, useCallback } from 'react'
+import styles from './style/index.less'
+
+const ANIMATION_DURATION = 200
+
+export default function Transition({
+ isShow,
+ children,
+}) {
+ const mounted = useRef(false)
+ const collapseRef = useRef(null)
+ const timer = useRef({})
+
+ // prepare
+ const beforeEnter = () => {
+ const el = collapseRef.current
+ el.style.height = '0px'
+ }
+
+ const afterEnter = useCallback(() => {
+ const el = collapseRef.current
+ el.style.display = 'block'
+ el.style.height = ''
+ }, [])
+
+ // start
+ const enter = useCallback(() => {
+ const el = collapseRef.current
+ el.style.display = 'block'
+ if (el.scrollHeight !== 0) {
+ el.style.height = `${el.scrollHeight}px`
+ }
+
+ timer.current.enterTimer = setTimeout(() => afterEnter(), ANIMATION_DURATION)
+ }, [afterEnter])
+
+ const beforeLeave = useCallback(() => {
+ const el = collapseRef.current
+
+ el.style.display = 'block'
+ if (el.scrollHeight !== 0) {
+ el.style.height = `${el.scrollHeight}px`
+ }
+ }, [])
+
+ const afterLeave = useCallback(() => {
+ const el = collapseRef.current
+
+ el.style.display = 'none'
+ el.style.height = ''
+ }, [])
+
+ const leave = useCallback(() => {
+ const el = collapseRef.current
+ if (el.scrollHeight !== 0) {
+ el.style.height = '0px'
+ }
+ timer.current.leaveTimer = setTimeout(() => afterLeave(), ANIMATION_DURATION)
+ }, [afterLeave])
+
+ const triggerChange = useCallback(
+ (isShow) => {
+ clearTimeout(timer.current.enterTimer)
+ clearTimeout(timer.current.leaveTimer)
+ if (isShow) {
+ beforeEnter()
+ enter()
+ } else {
+ beforeLeave()
+ leave()
+ }
+ },
+ [beforeLeave, enter, leave]
+ )
+
+ useEffect(() => {
+ if (!mounted.current) {
+ mounted.current = true
+ beforeEnter()
+ if (isShow) {
+ enter()
+ }
+ } else {
+ triggerChange(isShow)
+ }
+ }, [enter, isShow, triggerChange])
+
+ return (
+
+ {children}
+
+ )
+}
diff --git a/packages/crd-seed/component/Menu/util.js b/packages/crd-seed/component/Menu/util.js
new file mode 100644
index 00000000..4a137926
--- /dev/null
+++ b/packages/crd-seed/component/Menu/util.js
@@ -0,0 +1,20 @@
+/* 获取 menu 样式
+ level: 层级
+*/
+const getMenuStyle = (level, type) => {
+ const basicStyle = {
+ fontSize: level === 0 ? '14px' : '12px',
+ }
+ if (type === 'menuItem') {
+ return {
+ ...basicStyle,
+ paddingLeft: `${21 + (level * 16)}px`,
+ }
+ }
+ return {
+ ...basicStyle,
+ paddingLeft: `${level * 16}px`,
+ }
+}
+
+export { getMenuStyle }
diff --git a/packages/crd-seed/component/NoMatch/index.js b/packages/crd-seed/component/NoMatch/index.js
new file mode 100644
index 00000000..f5e20f03
--- /dev/null
+++ b/packages/crd-seed/component/NoMatch/index.js
@@ -0,0 +1,21 @@
+import styles from './index.less'
+
+const NoMatch = () => {
+ // eslint-disable-next-line no-undef
+ const { user, repo } = DOCSCONFIG || {}
+ return (
+
+
+
+
+ 404
+ 你似乎来到了没有知识存在的荒原...
+
+
+
+
+
+ )
+}
+
+export default NoMatch
diff --git a/packages/crd-seed/component/NoMatch/index.less b/packages/crd-seed/component/NoMatch/index.less
new file mode 100644
index 00000000..ebb66f94
--- /dev/null
+++ b/packages/crd-seed/component/NoMatch/index.less
@@ -0,0 +1,16 @@
+.noMatch {
+ position: relative;
+ width: 100%;
+ height: 80%;
+ text-align: center;
+ border-spacing: 0;
+ border-collapse: collapse;
+ color: #a2a2a2;
+
+ h1 {
+ color: #717171;
+ font-size: 68px;
+ line-height: 54px;
+ font-weight: 500;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-seed/component/Search/README.md b/packages/crd-seed/component/Search/README.md
new file mode 100644
index 00000000..640d88e1
--- /dev/null
+++ b/packages/crd-seed/component/Search/README.md
@@ -0,0 +1,6 @@
+### API
+
+| props | description | type | default |
+| :---------: | :---------: | :----: | :------: |
+| placeholder | placeholder | string | 'Search' |
+| className | css | string | -- |
diff --git a/packages/crd-seed/component/Search/index.js b/packages/crd-seed/component/Search/index.js
new file mode 100644
index 00000000..8a1fd809
--- /dev/null
+++ b/packages/crd-seed/component/Search/index.js
@@ -0,0 +1,55 @@
+import { useState, useEffect } from 'react'
+import cx from 'classnames'
+import Icon from '../Icon'
+import styles from './index.less'
+
+const Search = ({
+ placeholder = 'Search',
+ className,
+}) => {
+ const [value, setValue] = useState('')
+ // const [searchContent, setSearchContent] = useState([]);
+ // const showSearchContent = value.length > 0 && searchContent.length > 0;
+ useEffect(() => {
+ /* eslint-disable-next-line no-undef */
+ // if (SEARCHCONTENT) {
+ // /* eslint-disable-next-line no-undef */
+ // const filterSearch = SEARCHCONTENT.filter((r) => {
+ // return r.title.includes(value) || r.content.includes(value);
+ // });
+ // setSearchContent(filterSearch);
+ // }
+ }, [value])
+ return (
+
+
+
{
+ setValue(e.target.value)
+ }}
+ />
+ {/* {showSearchContent ? (
+
+ {searchContent.map((search) => {
+ return (
+ {
+ location.hash = search.url;
+ }}
+ key={search.url}
+ >
+ {search.title}
+ {search.content}
+
+ );
+ })}
+
+ ) : null} */}
+
+ )
+}
+
+export default Search
diff --git a/packages/crd-seed/component/Search/index.less b/packages/crd-seed/component/Search/index.less
new file mode 100644
index 00000000..cec3b9be
--- /dev/null
+++ b/packages/crd-seed/component/Search/index.less
@@ -0,0 +1,50 @@
+.search {
+ position: relative;
+
+ input {
+ line-height: 1.5;
+ font-size: 14px;
+ color: #999;
+ outline: 0;
+ border-radius: 4px;
+ border: 0;
+ width: 200px;
+ }
+
+ .panel {
+ position: absolute;
+ width: 350px;
+ top: 50px;
+ left: 0;
+ background: rgba(255, 255, 255);
+ max-height: 400px;
+ box-shadow: rgba(101, 119, 134, 0.2) 0px 0px 15px, rgba(101, 119, 134, 0.15) 0px 0px 3px 1px;
+ overflow-y: auto;
+
+ li {
+ padding: 0 5px;
+ list-style: none;
+ border: 1px solid rgb(230, 236, 240);
+ }
+ }
+
+ .searchItem {
+ display: flex;
+ }
+
+ .title {
+ display: inline-block;
+ width: 90px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ .content {
+ display: inline-block;
+ width: 245px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-seed/component/Tags/index.js b/packages/crd-seed/component/Tags/index.js
new file mode 100644
index 00000000..48e43aa4
--- /dev/null
+++ b/packages/crd-seed/component/Tags/index.js
@@ -0,0 +1,45 @@
+import { Link, useMatch } from 'react-router-dom'
+import { ifProd } from 'crd-client-utils'
+import { ifAddPrefix } from '../../utils'
+import styles from './index.less'
+
+/**
+ * name: the name of tag category.
+ */
+const Tags = () => {
+ const { user, repo } = DOCSCONFIG || {}
+ const path = ifAddPrefix ? `/${repo}/tags/:name` : '/tags/:name'
+ const routeMatch = useMatch(path) || {}
+ const { name } = routeMatch.params || {}
+
+ return (
+
+
{name || 'Tags'}
+
+ {
+ name
+ ? mapTagsWithArticle.find(({ tagName }) => tagName === name)?.mapArticle.map(({ path, title }) => {
+ return
+ {title}
+
+ })
+ : mapTagsWithArticle.map(({ tagName }) => {
+ return
+ {tagName}
+
+ })
+ }
+
+
+ )
+}
+
+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..a602fafa
--- /dev/null
+++ b/packages/crd-seed/component/Tags/index.less
@@ -0,0 +1,26 @@
+.tags {
+ width: 100%;
+ padding: 0 20px;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+
+ &-title {
+ font-size: 24px;
+ font-weight: 400;
+ text-align: center;
+ }
+
+ &-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/crd.logo.svg b/packages/crd-seed/crd.logo.svg
new file mode 100644
index 00000000..08a299f1
--- /dev/null
+++ b/packages/crd-seed/crd.logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/crd-seed/favicon.ico b/packages/crd-seed/favicon.ico
new file mode 100644
index 00000000..4737dbd7
Binary files /dev/null and b/packages/crd-seed/favicon.ico differ
diff --git a/packages/crd-seed/index.js b/packages/crd-seed/index.js
new file mode 100644
index 00000000..b68dd97e
--- /dev/null
+++ b/packages/crd-seed/index.js
@@ -0,0 +1,16 @@
+import { Routes, Route, Navigate } from 'react-router-dom'
+import BasicLayout from './layout'
+import NoMatch from './component/NoMatch'
+import './index.less'
+
+// run in the Web/Router.js
+const ThemeSeed = (props) => {
+ return (
+
+ } />
+ } />
+
+ )
+}
+
+export default ThemeSeed
diff --git a/packages/crd-seed/index.less b/packages/crd-seed/index.less
new file mode 100644
index 00000000..e1d6c9af
--- /dev/null
+++ b/packages/crd-seed/index.less
@@ -0,0 +1,39 @@
+body {
+ font-family: cursive, sans-serif;
+}
+
+body,
+html {
+ position: relative;
+}
+
+body,
+html,
+ul,
+li {
+ margin: 0;
+ padding: 0;
+}
+
+a {
+ color: #314659;
+ text-decoration: none;
+ transition: color .3s;
+
+ &:hover {
+ color: #1890ff;
+ }
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+:global {
+ #root {
+ height: 100%;
+ background: white;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-seed/language/index.js b/packages/crd-seed/language/index.js
new file mode 100644
index 00000000..abb50c73
--- /dev/null
+++ b/packages/crd-seed/language/index.js
@@ -0,0 +1,12 @@
+const languageMap = {
+ en: {
+ create_tm: 'create',
+ modify_tm: 'modify',
+ },
+ 'zh-cn': {
+ create_tm: '创建',
+ modify_tm: '修改',
+ },
+}
+
+export default languageMap
diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js
new file mode 100644
index 00000000..c755a7df
--- /dev/null
+++ b/packages/crd-seed/layout/index.js
@@ -0,0 +1,337 @@
+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'
+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'
+import logo from '../crd.logo.svg'
+import styles from './index.less'
+import '../style/mobile.less'
+
+const { useState, useEffect, useMemo } = React
+const SubMenu = Menu.SubMenu
+
+function BasicLayout({
+ routeData,
+ menuSource
+}) {
+ const location = useLocation()
+ const { pathname } = location
+ const {
+ user,
+ repo,
+ branch = 'main',
+ language = 'en',
+ menuOpenKeys,
+ tags,
+ comment
+ } = DOCSCONFIG || {}
+
+ const [inlineCollapsed, setInlineCollapsed] = useState(true)
+ const [selectedKey, setSelectedKey] = useState('')
+ const curOpenKeys = getOpenSubMenuKeys({
+ pathname,
+ menuSource,
+ 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) {
+ scrollToTop()
+ INJECT?.inject?.()
+ }
+ }, [])
+
+ useEffect(() => {
+ INJECT?.injectWithPathname?.(pathname)
+ }, [pathname])
+
+ useEffect(() => {
+ const { pathname } = location
+ let newPathName = pathname
+ // fix https://github.com/MuYunyun/create-react-doc/issues/195
+ if (newPathName.endsWith('/')) {
+ newPathName = newPathName.slice(0, newPathName.length - 1)
+ }
+ if (newPathName.startsWith(`/${repo}`)) {
+ newPathName = newPathName.slice(`/${repo}`.length, newPathName.length)
+ }
+ setSelectedKey(newPathName || defaultPath)
+ }, location.pathname)
+
+ const scrollToTop = () => {
+ document.body.scrollTop = 0
+ document.documentElement.scrollTop = 0
+ window.scrollTo(0, 0)
+ }
+ const renderSubMenuItem = (menus) => {
+ return (
+ <>
+ {menus.map((item, index) => {
+ const { mdconf, routePath } = item || {}
+ const { abbrlink } = mdconf || {}
+ const path = abbrlink ? `/${abbrlink}` : routePath
+ // item.path carrys .md here.
+ return item.children && item.children.length > 0 ? (
+ }
+ >
+ {renderSubMenuItem(item.children)}
+
+ ) : (
+ }
+ keyValue={abbrlink ? `/${abbrlink}` : item.path}
+ title={
+ item &&
+ item.type === "directory" &&
+ item.props &&
+ item.props.isEmpty ? (
+
+ {(item.mdconf && item.mdconf.title) || item.name}
+
+ ) : (
+ -1}
+ >
+ {item && item.mdconf && item.mdconf.title
+ ? item.mdconf.title
+ : item.title}
+
+ )
+ }
+ />
+ )
+ })}
+ >
+ )
+ }
+ const renderMenu = (menus) => {
+ if (menus.length < 1) return null
+
+ return (
+
+ {
+ setInlineCollapsed(!inlineCollapsed)
+ }}
+ menuStyle={{
+ height: "100vh",
+ overflow: "auto",
+ }}
+ selectedKey={selectedKey}
+ onSelect={(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 = 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].props.path
+ const isNotTagPage = location.pathname.indexOf('/tags') === -1
+ return (
+
+ )
+ }
+
+ /**
+ * 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
+ * such as edit in created time、edited time and so on.
+ */
+ const renderPageFooter = () => {
+ // 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 (
+
+ {matchProps && matchProps.birthtime ? (
+
+
+ {languageMap[language].create_tm}:
+ {matchProps.birthtime}
+
+ ) : null}
+ {matchProps && matchProps.mtime ? (
+
+
+ {languageMap[language].modify_tm}:
+
+ {routeData.find((data) => pathname.indexOf(data.path) > -1).props.mtime}
+
+
+ ): null}
+
+ )
+ }
+ const isCurentChildren = () => {
+ const getRoute = routeData.filter((data) => pathname.indexOf(data.path) > -1)
+ 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()
+ const renderMenuContainer = () => {
+ return (
+ <>
+
+ {renderMenu(menuSource)}
+
+ {
+ e.stopPropagation()
+ setInlineCollapsed(true)
+ }}
+ />
+ >
+ )
+ }
+
+ const renderContent = () => {
+ return (
+
+
+ {/* 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
+ const Comp = component
+ return (
+ }
+ />
+ )
+ })}
+ {
+ tags
+ ? <>
+ }
+ />
+ }
+ />
+ >
+ : null
+ }
+ {/* Todo: follow up how to use Redirect to back up the rest of route. */}
+ {/* */}
+
+ {comment?.GiscusConfig ? renderComment : null}
+ {renderPageFooter()}
+
+ )
+ }
+
+ return (
+
+
+
+ {renderPageHeader()}
+ {renderMenuContainer()}
+ {renderContent()}
+
+
+
+ )
+}
+
+export default BasicLayout
diff --git a/packages/crd-seed/layout/index.less b/packages/crd-seed/layout/index.less
new file mode 100644
index 00000000..9b4f8c51
--- /dev/null
+++ b/packages/crd-seed/layout/index.less
@@ -0,0 +1,126 @@
+@import '../style/base.less';
+
+.wrapper {
+ &::after {
+ content: '';
+ display: block;
+ clear: both;
+ }
+}
+
+.wrapperContent {
+ padding: 40px 0 0 0;
+ margin: 0px auto 0;
+ position: relative;
+ min-height: 100vh;
+
+ .pageHeader,
+ .pageFooter {
+ position: absolute;
+ right: 40px;
+ font-size: 13px;
+ display: flex;
+ align-items: center;
+ }
+
+ .pageHeader {
+ top: 20px;
+ }
+
+ .pageFooter {
+ bottom: -23px;
+
+ .position {
+ margin-right: 6px;
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ .icon {
+ margin-right: 3px;
+ }
+}
+
+.wrapperMobile {
+ // padding-top: 0;
+}
+
+.menuWrapper {
+ width: 240px;
+ float: left;
+ position: absolute;
+ font-size: 14px;
+ color: #6d6d6d;
+ transition: width .2s linear;
+ z-index: @menu-zIndex;
+
+ ul li {
+ list-style: none;
+ }
+
+ ul ul {
+ padding: 0 0 0 0;
+ }
+
+ li {
+ // padding: 0 0 0 21px;
+ line-height: 40px;
+ }
+
+ li li {
+ padding: 0 0 0 0;
+ }
+
+ // :global {
+ // .active a {
+ // color: #1890ff;
+ // }
+ // }
+
+ &-inlineCollapsed {
+ width: 0;
+ }
+
+ .affixPlaceholder {
+ transition: width .2s linear;
+ }
+
+ .affixWrapper {
+ border-right: 1px solid rgb(233, 233, 233);
+ transition: width .2s linear;
+ width: 0px;
+ }
+}
+
+.menuMask {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: rgba(0, 0, 0, .3);
+ z-index: @menu-mask-zIndex;
+ transition: opacity .3s cubic-bezier(.78, .14, .15, .86)
+}
+
+.content {
+ margin-left: 240px;
+ min-height: 300px;
+ transition: margin-left .2s ease-in-out;
+ position: relative;
+
+ &-fullpage {
+ margin-left: 0px;
+ }
+}
+
+.contentNoMenu {
+ min-height: 400px;
+}
+
+giscus-widget {
+ display: flex;
+ margin: auto;
+ max-width: 940px;
+}
diff --git a/packages/crd-seed/layout/utils.js b/packages/crd-seed/layout/utils.js
new file mode 100644
index 00000000..3d66c544
--- /dev/null
+++ b/packages/crd-seed/layout/utils.js
@@ -0,0 +1,49 @@
+/**
+ * get keys of open sub menu from pathname
+ * {
+ * 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
+ * }
+ */
+function getOpenSubMenuKeys({
+ pathname,
+ menuSource,
+ menuOpenKeys
+}) {
+ const result = []
+ getOpenSubMenuKeysForAbbrLink(
+ menuSource,
+ decodeURI(pathname),
+ result
+ )
+
+ /** 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 // used with abbrlink
+ || (pathname.indexOf(source[i].routePath) > -1) // used not with abbrlink
+ ) {
+ return true
+ }
+ }
+ }
+}
+
+export { getOpenSubMenuKeys }
diff --git a/packages/crd-seed/package.json b/packages/crd-seed/package.json
new file mode 100644
index 00000000..e1afb6f5
--- /dev/null
+++ b/packages/crd-seed/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "crd-seed",
+ "version": "1.10.3",
+ "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"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MuYunyun/create-react-doc",
+ "directory": "packages/theme-seed"
+ },
+ "keywords": [],
+ "publishConfig": {
+ "access": "public"
+ },
+ "author": "muyunyun",
+ "license": "MIT",
+ "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199"
+}
diff --git a/packages/crd-seed/style/base.less b/packages/crd-seed/style/base.less
new file mode 100644
index 00000000..07004ac8
--- /dev/null
+++ b/packages/crd-seed/style/base.less
@@ -0,0 +1,4 @@
+// z-index
+@menu-zIndex: 99;
+@menu-mask-zIndex: 90;
+@header-zIndex: 100;
\ No newline at end of file
diff --git a/packages/crd-seed/style/mobile.less b/packages/crd-seed/style/mobile.less
new file mode 100644
index 00000000..a513c4a7
--- /dev/null
+++ b/packages/crd-seed/style/mobile.less
@@ -0,0 +1,12 @@
+// remove the blue area in the mobile
+:global {
+ div,
+ input,
+ textarea,
+ button,
+ select,
+ a,
+ li {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-seed/utils/index.js b/packages/crd-seed/utils/index.js
new file mode 100644
index 00000000..2ae16251
--- /dev/null
+++ b/packages/crd-seed/utils/index.js
@@ -0,0 +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
+
+// decide to if add prefix for path, eg: '/' or '/${repo}'
+const ifAddPrefix = ifProd && !ifPrerender
+
+export { isMobile, ifAddPrefix }
diff --git a/packages/crd-templates/.npmrc b/packages/crd-templates/.npmrc
new file mode 100644
index 00000000..188fea96
--- /dev/null
+++ b/packages/crd-templates/.npmrc
@@ -0,0 +1,3 @@
+# .npmrc
+
+registry=https://registry.npmjs.org/
diff --git a/packages/crd-templates/README.md b/packages/crd-templates/README.md
new file mode 100644
index 00000000..71799131
--- /dev/null
+++ b/packages/crd-templates/README.md
@@ -0,0 +1,15 @@
+ _.-"\
+ _.-" \
+ ,-" \
+ \ create \
+ \ \ react \
+ \ \ doc \
+ \ \ _.-;
+ \ \ _.-" :
+ \ \,-" _.-"
+ \( _.-"
+ `--"
+
+# crd-templates
+
+crd-templates 集成了 create-react-doc 中相关模板文件。
diff --git a/packages/crd-templates/default/.github/workflows/gh-pages.yml b/packages/crd-templates/default/.github/workflows/gh-pages.yml
new file mode 100644
index 00000000..b4896ff3
--- /dev/null
+++ b/packages/crd-templates/default/.github/workflows/gh-pages.yml
@@ -0,0 +1,37 @@
+name: github pages
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ deploy:
+ runs-on: ubuntu-18.04
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Setup Node
+ uses: actions/setup-node@v2.1.3
+ with:
+ node-version: '12.x'
+
+ - name: Get yarn cache
+ id: yarn-cache
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+
+ - name: Cache dependencies
+ uses: actions/cache@v2
+ with:
+ path: ${{ steps.yarn-cache.outputs.dir }}
+ key: ${{ runner.os }}-website-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-website-
+
+ - run: yarn install --frozen-lockfile
+ - run: yarn build
+
+ - name: Deploy
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: .crd-dist
\ No newline at end of file
diff --git a/packages/crd-templates/default/.npmrc b/packages/crd-templates/default/.npmrc
new file mode 100644
index 00000000..a7b95f94
--- /dev/null
+++ b/packages/crd-templates/default/.npmrc
@@ -0,0 +1,2 @@
+# .npmrc
+registry=https://registry.npmjs.org/
diff --git a/packages/crd-templates/default/Introduction/hello_world.md b/packages/crd-templates/default/Introduction/hello_world.md
new file mode 100644
index 00000000..9183fa2e
--- /dev/null
+++ b/packages/crd-templates/default/Introduction/hello_world.md
@@ -0,0 +1,3 @@
+Write docs happily now.
+
+If there is any problem, welcome give issue [there](https://github.com/MuYunyun/create-react-doc/issues).
diff --git a/packages/crd-templates/default/README.md b/packages/crd-templates/default/README.md
new file mode 100644
index 00000000..1435cd62
--- /dev/null
+++ b/packages/crd-templates/default/README.md
@@ -0,0 +1,85 @@
+ _.-"\
+ _.-" \
+ ,-" \
+ \ create \
+ \ \ react \
+ \ \ doc \
+ \ \ _.-;
+ \ \ _.-" :
+ \ \,-" _.-"
+ \( _.-"
+ `--"
+
+[![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)
+
+# Create React Doc
+
+Create React Doc 是一个使用 React 的 markdown 文档站点生成工具。就像 [create-react-app](https://github.com/facebook/create-react-app) 一样,开发者可以使用 Create React Doc 来开发、部署 markdown 站点或者博客而无需关心站点环境配置信息。
+
+## 特性
+
+* 建站理念: 文件即站点 (Files as a site)。
+* 开箱即用: 一键生成可运行文档站点, 无需关心站点环境配置信息。
+* 自定义展示目录: 天然适合搭建 monorepo 文档、博客等站点。
+* 性能: 文档支持懒加载提升站点加载速度。
+* 工作流: 集成 Github action, 自动化打包、发布站点。
+
+> [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B)
+
+## 主题
+
+当前默认使用的主题是 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。
+
+使用该主题搭建的站点
+
+* [blog](http://muyunyun.cn/blog)
+ * ![](http://with.muyunyun.cn/90d3e357a31649b9466a828a92b6d88d.jpg)
+ * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300)
+* [diana](https://muyunyun.cn/diana/)
+
+> 如果你的产品从中受益,欢迎
留言补充
+
+## 快速上手
+
+**create-react-doc** 非常容易上手。开发者不需要额外安装或配置 webpack 或者 Babel 等工具,它们被内置隐藏在脚手架中,因此开发者可以专心于文档的书写。
+
+如果你想在当前文件下建立站点文件 `doc`, 这里提供如下三种方式快速建站:
+
+### npx
+
+```bash
+npx create-react-doc doc
+```
+
+### npm
+
+```bash
+npm init create-react-doc doc
+```
+
+### yarn
+
+```bash
+yarn create react-doc doc
+```
+
+![](http://with.muyunyun.cn/0f0cf6e8cb68b18399eac2927f74b063.jpg)
+
+> 如果想把模板内容内容拉取到当前文件夹, 则可以将如上命令的 `doc` 替换为 `.`, 比如执行 `npx create-react-doc .`。
+
+接着执行 `cd doc && yarn && yarn start`, 可以在 `localhost: 3000` 预览站点, 如果站点文档发生改变, 站点将自动重新加载。
+
+
+
+## 高阶用法
+
+与 git 文件结构类似, 如果在展示的文件夹中有私有文件不方便展示在文档站点, 可以在 `.gitignore` 文件中设置过滤文件, 这样它们就不会展示在文档站点中了。eg: [.gitignore](https://github.com/MuYunyun/blog/blob/main/.gitignore)
+
+## 其它工具
+
+* [crd-leetcode-cli](https://github.com/MuYunyun/create-react-doc/tree/main/packages/leetcode-cli): 提供将 [leetcode](https://leetcode-cn.com/) 中已 AC 的题目转化为 markdown 表格的能力。
\ No newline at end of file
diff --git a/packages/crd-templates/default/_.gitignore b/packages/crd-templates/default/_.gitignore
new file mode 100644
index 00000000..7a10c704
--- /dev/null
+++ b/packages/crd-templates/default/_.gitignore
@@ -0,0 +1,5 @@
+node_modules
+package-lock.json
+.DS_Store
+.cache
+.crd-dist
diff --git a/packages/crd-templates/default/_config.yml b/packages/crd-templates/default/_config.yml
new file mode 100644
index 00000000..36393c22
--- /dev/null
+++ b/packages/crd-templates/default/_config.yml
@@ -0,0 +1,21 @@
+# details see http://muyunyun.cn/create-react-doc/默认主题
+
+# Site
+# title:
+
+# Menu dir
+## you can also set detailed dir, such as BasicSkill/css
+menu: ['Introduction']
+## set init open menu keys
+# menuOpenKeys:
+
+# site theme
+theme: crd-seed
+
+# Github
+## if you want to editing pages on github, you should config these arguments.
+# user:
+# repo:
+
+# Available values: en | zh-cn
+language: en
\ No newline at end of file
diff --git a/packages/crd-templates/default/_package.json b/packages/crd-templates/default/_package.json
new file mode 100644
index 00000000..eb11fff4
--- /dev/null
+++ b/packages/crd-templates/default/_package.json
@@ -0,0 +1,20 @@
+{
+ "name": "{{name}}",
+ "version": "1.0.0",
+ "description": "Describe {{name}} here",
+ "scripts": {
+ "start": "react-doc start",
+ "build": "react-doc build",
+ "deploy": "react-doc deploy"
+ },
+ "keywords": [
+ "{{name}}",
+ "react-doc",
+ "react"
+ ],
+ "devDependencies": {
+ "create-react-doc": "{{crdVersion}}"
+ },
+ "author": "",
+ "license": "MIT"
+}
diff --git a/packages/crd-templates/package.json b/packages/crd-templates/package.json
new file mode 100644
index 00000000..fcc5d503
--- /dev/null
+++ b/packages/crd-templates/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "crd-templates",
+ "version": "1.10.0",
+ "description": "Default Templates with Create React Doc",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MuYunyun/create-react-doc",
+ "directory": "packages/templates"
+ },
+ "keywords": [],
+ "publishConfig": {
+ "access": "public"
+ },
+ "author": "muyunyun",
+ "license": "MIT",
+ "gitHead": ""
+}
diff --git a/packages/crd-templates/theme/default/Introduction/hello_world.md b/packages/crd-templates/theme/default/Introduction/hello_world.md
new file mode 100644
index 00000000..48e01fc1
--- /dev/null
+++ b/packages/crd-templates/theme/default/Introduction/hello_world.md
@@ -0,0 +1,3 @@
+Write docs happily now.
+
+If there is any problem, welcome give issue [here](https://github.com/MuYunyun/create-react-doc/issues).
diff --git a/packages/crd-templates/theme/default/README.md b/packages/crd-templates/theme/default/README.md
new file mode 100644
index 00000000..e7f495ba
--- /dev/null
+++ b/packages/crd-templates/theme/default/README.md
@@ -0,0 +1,15 @@
+ _.-"\
+ _.-" \
+ ,-" \
+ \ create \
+ \ \ react \
+ \ \ doc \
+ \ \ _.-;
+ \ \ _.-" :
+ \ \,-" _.-"
+ \( _.-"
+ `--"
+
+### {{name}}
+
+This is {{name}} theme for [create-react-doc](https://github.com/MuYunyun/create-react-doc).
\ No newline at end of file
diff --git a/packages/crd-templates/theme/default/_.gitignore b/packages/crd-templates/theme/default/_.gitignore
new file mode 100644
index 00000000..ac737c85
--- /dev/null
+++ b/packages/crd-templates/theme/default/_.gitignore
@@ -0,0 +1,7 @@
+node_modules
+package-lock.json
+.DS_Store
+.cache
+.crd-dist
+config.yml
+Introduction
\ No newline at end of file
diff --git a/packages/crd-templates/theme/default/_.npmrc b/packages/crd-templates/theme/default/_.npmrc
new file mode 100644
index 00000000..a7b95f94
--- /dev/null
+++ b/packages/crd-templates/theme/default/_.npmrc
@@ -0,0 +1,2 @@
+# .npmrc
+registry=https://registry.npmjs.org/
diff --git a/packages/crd-templates/theme/default/_config.yml b/packages/crd-templates/theme/default/_config.yml
new file mode 100644
index 00000000..c8c018e5
--- /dev/null
+++ b/packages/crd-templates/theme/default/_config.yml
@@ -0,0 +1,21 @@
+# details see http://muyunyun.cn/create-react-doc/默认主题
+
+# Site
+# title:
+
+# Menu dir
+## you can also set detailed dir, such as BasicSkill/css
+menu: ['Introduction']
+## set init open menu keys
+# menuOpenKeys:
+
+# site theme
+devTheme: ./index
+
+# Github
+## if you want to editing pages on github, you should config these arguments.
+# user:
+# repo:
+
+# Available values: en | zh-cn
+language: en
\ No newline at end of file
diff --git a/packages/crd-templates/theme/default/_index.js b/packages/crd-templates/theme/default/_index.js
new file mode 100644
index 00000000..fb98dc0a
--- /dev/null
+++ b/packages/crd-templates/theme/default/_index.js
@@ -0,0 +1,28 @@
+// The position of current index.js should be kept.
+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 (
+ }
+ />
+ )
+ })}
+
+
+ )
+}
+
+export default {{name}}
diff --git a/packages/crd-templates/theme/default/_index.less b/packages/crd-templates/theme/default/_index.less
new file mode 100644
index 00000000..c8cef1f3
--- /dev/null
+++ b/packages/crd-templates/theme/default/_index.less
@@ -0,0 +1,7 @@
+.center {
+ height: 100vh;
+ width: 100vw;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
\ No newline at end of file
diff --git a/packages/crd-templates/theme/default/_package.json b/packages/crd-templates/theme/default/_package.json
new file mode 100644
index 00000000..0bcd71e5
--- /dev/null
+++ b/packages/crd-templates/theme/default/_package.json
@@ -0,0 +1,24 @@
+{
+ "name": "{{name}}",
+ "version": "0.1.0",
+ "description": "{{name}} theme for create-react-doc",
+ "main": "index.js",
+ "scripts": {
+ "start": "react-doc start"
+ },
+ "keywords": [
+ "{{name}}",
+ "react-doc",
+ "react",
+ "create-react-doc",
+ "theme"
+ ],
+ "devDependencies": {
+ "create-react-doc": "{{crdVersion}}"
+ },
+ "dependencies": {
+ "react-router-dom": "^6.3.0"
+ },
+ "author": "",
+ "license": "MIT"
+}
diff --git a/packages/crd-theme/.npmrc b/packages/crd-theme/.npmrc
new file mode 100644
index 00000000..7edb6af8
--- /dev/null
+++ b/packages/crd-theme/.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-theme/README.md b/packages/crd-theme/README.md
new file mode 100644
index 00000000..a606b9da
--- /dev/null
+++ b/packages/crd-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/crd-theme/component/Loading/index.js b/packages/crd-theme/component/Loading/index.js
new file mode 100644
index 00000000..206f0827
--- /dev/null
+++ b/packages/crd-theme/component/Loading/index.js
@@ -0,0 +1,11 @@
+import styles from './index.less'
+
+const Loading = () => {
+ return (
+
+ 正在加载中....
+
+ )
+}
+
+export default Loading
diff --git a/packages/crd-theme/component/Loading/index.less b/packages/crd-theme/component/Loading/index.less
new file mode 100644
index 00000000..9370cd86
--- /dev/null
+++ b/packages/crd-theme/component/Loading/index.less
@@ -0,0 +1,5 @@
+.loading {
+ text-align: center;
+ min-height: 450px;
+ padding: 30px 0;
+}
diff --git a/packages/crd-theme/crd.logo.svg b/packages/crd-theme/crd.logo.svg
new file mode 100644
index 00000000..08a299f1
--- /dev/null
+++ b/packages/crd-theme/crd.logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/crd-theme/favicon.ico b/packages/crd-theme/favicon.ico
new file mode 100644
index 00000000..4737dbd7
Binary files /dev/null and b/packages/crd-theme/favicon.ico differ
diff --git a/packages/crd-theme/index.html b/packages/crd-theme/index.html
new file mode 100644
index 00000000..02b7a91c
--- /dev/null
+++ b/packages/crd-theme/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+
<%= htmlWebpackPlugin.options.title %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/crd-theme/index.js b/packages/crd-theme/index.js
new file mode 100644
index 00000000..5618a22a
--- /dev/null
+++ b/packages/crd-theme/index.js
@@ -0,0 +1,21 @@
+import * as React from 'react'
+import Markdown from './markdown'
+import './index.less'
+
+export default function (props) {
+ // routing load component
+ if (props.routeData && props.routeData.length > 0) {
+ props.routeData.map((item) => {
+ item.component = Markdown
+ return item
+ })
+ }
+
+ // support for custom theme.
+ const CustomTheme = require('__project_theme__').default
+
+ // use custom theme here.
+ return (
+
+ )
+}
diff --git a/packages/crd-theme/index.less b/packages/crd-theme/index.less
new file mode 100644
index 00000000..ea4aab5f
--- /dev/null
+++ b/packages/crd-theme/index.less
@@ -0,0 +1,35 @@
+body,
+html {
+ position: relative;
+}
+
+body,
+html,
+ul,
+li {
+ margin: 0;
+ padding: 0;
+}
+
+a {
+ color: #314659;
+ text-decoration: none;
+ transition: color .3s;
+
+ &:hover {
+ color: #1890ff;
+ }
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+:global {
+ #root {
+ height: 100%;
+ background: white;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-theme/markdown/Link.js b/packages/crd-theme/markdown/Link.js
new file mode 100644
index 00000000..66b0335a
--- /dev/null
+++ b/packages/crd-theme/markdown/Link.js
@@ -0,0 +1,33 @@
+import styles from './Link.less'
+
+export default ({ title, href, children }) => {
+ let link = href.replace(/(\/|\/show\/|\/show)$/g, '')
+ if (
+ /^(http(?:|s):)\/\/(jsfiddle.net|runjs.cn|codepen.io|codesandbox.io)/.test(link) &&
+ !/^(https|http):\/\/(jsfiddle.net|runjs.cn|codepen.io|codesandbox.io)(?:|\/)$/.test(link)
+ ) {
+ const regexRunjs = /(https|http):\/\/runjs.cn\/code\/(.*)/gi
+ const regexCodepen = /(https|http):\/\/codepen.io\/(.*)\/pen\/(.*)/gi
+ const regexCodesandbox = /(https|http):\/\/codesandbox.io\/(s|embed)\/(.*)/gi
+ const runjs = regexRunjs.exec(link)
+ const codepen = regexCodepen.exec(link)
+ const codesandbox = regexCodesandbox.exec(link)
+ if (runjs && runjs.length > 2) {
+ link = `http://sandbox.runjs.cn/show/${runjs[2]}`
+ } else if (codepen && codepen.length === 4) {
+ link = `https://codepen.io/${codepen[2]}/embed/${codepen[3]}?height=400`
+ } else if (codesandbox && codesandbox.length === 4) {
+ link = `https://codesandbox.io/embed/${codesandbox[3]}`
+ } else {
+ link = `${link}/show/`
+ }
+ return (
+
+ )
+ }
+ return (
+
+ {children}
+
+ )
+}
diff --git a/packages/crd-theme/markdown/Link.less b/packages/crd-theme/markdown/Link.less
new file mode 100644
index 00000000..8ac02bb3
--- /dev/null
+++ b/packages/crd-theme/markdown/Link.less
@@ -0,0 +1,7 @@
+.frame {
+ width: 100%;
+ min-height: 400px;
+ border: 1px solid #e9e9e9;
+ border-radius: 3px;
+ background: #fff;
+}
diff --git a/packages/crd-theme/markdown/codeBlock.js b/packages/crd-theme/markdown/codeBlock.js
new file mode 100644
index 00000000..4e8c8a6f
--- /dev/null
+++ b/packages/crd-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/crd-theme/markdown/index.js b/packages/crd-theme/markdown/index.js
new file mode 100644
index 00000000..6dfff077
--- /dev/null
+++ b/packages/crd-theme/markdown/index.js
@@ -0,0 +1,77 @@
+import * as React 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 styles from './style/index.less'
+
+const { useState, useEffect, useRef } = React
+
+const components = {
+ code: CodeBlock,
+ link: Link,
+}
+
+function Markdown(markdownProps) {
+ const { props } = markdownProps
+ const { relative, name } = props
+
+ const getRmFirstSlashMarkdownName = () => {
+ const relativeMd = relative
+ if (!relativeMd) return null
+ return relative.slice(1, relative.length - 3)
+ }
+
+ const getInitMarkdownCP = () => {
+ const markdownName = getRmFirstSlashMarkdownName()
+ if (!markdownName) return
+ return () => require(`__project_root__/${markdownName}.md`).default
+ }
+
+ const [MarkdownCP, setMarkdownCP] = useState(getInitMarkdownCP())
+ const markdownWrapperRef = useRef(null)
+
+ const renderMarkdown = () => {
+ const markdownName = getRmFirstSlashMarkdownName()
+ if (!markdownName) return
+ // it must be writen with / & .md in dynamic import
+ 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))
+ })
+ }
+
+ useEffect(() => {
+ renderMarkdown()
+ }, [getRmFirstSlashMarkdownName()])
+
+ const getName = () => {
+ return name ? name.replace('.md', '') : ''
+ }
+
+ return (
+ <>
+
+ {getName()}
+
+
+ {
+ MarkdownCP
+ ?
+
+
+
+
+ : null
+ }
+ >
+ )
+}
+
+export default Markdown
diff --git a/packages/crd-theme/markdown/style/css.less b/packages/crd-theme/markdown/style/css.less
new file mode 100644
index 00000000..70b32208
--- /dev/null
+++ b/packages/crd-theme/markdown/style/css.less
@@ -0,0 +1,22 @@
+.language-css, .language-scss, .language-stylus, .language-less {
+ .keyword, .selector-tag, .subst {
+ color: #d73a49;
+ font-weight: normal;
+ }
+ .tag, .name, .attribute {
+ color: #005cc5;
+ font-weight: normal;
+ }
+ .selector-pseudo {
+ color: #6f42c1;
+ }
+ .selector-attr {
+ color: #008c41;
+ }
+ .selector-class {
+ color: #6f42c1;
+ }
+ .selector-id {
+ font-weight: normal;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-theme/markdown/style/default.less b/packages/crd-theme/markdown/style/default.less
new file mode 100644
index 00000000..06845f87
--- /dev/null
+++ b/packages/crd-theme/markdown/style/default.less
@@ -0,0 +1,251 @@
+code {
+ word-wrap: normal;
+}
+
+pre {
+ max-height: 35em;
+ position: relative;
+ overflow: auto;
+ background-color: rgb(251, 251, 251);
+ border-radius: 3px;
+}
+
+pre code {
+ background: none;
+ font-size: 1em;
+ overflow-wrap: normal;
+ white-space: inherit;
+}
+
+ul,
+ol {
+ padding-left: 2em;
+}
+
+dl {
+ padding: 0;
+
+ dt {
+ padding: 0;
+ margin-top: 16px;
+ font-size: 14px;
+ font-style: italic;
+ font-weight: 600;
+ }
+}
+
+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 {
+ margin-top: 0;
+ }
+
+ &>:last-child {
+ margin-bottom: 0;
+ }
+}
+
+hr {
+ height: 0.25em;
+ padding: 0;
+ margin: 24px 0;
+ background-color: #e1e4e8;
+ 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 {
+ font-size: inherit
+}
+
+h1 {
+ padding-bottom: 0.3em;
+ font-size: 2em;
+ border-bottom: 1px solid #eaecef
+}
+
+h2 {
+ padding-bottom: 0.3em;
+ font-size: 1.5em;
+ border-bottom: 1px solid #eaecef
+}
+
+h3 {
+ font-size: 1.25em
+}
+
+h4 {
+ font-size: 1em
+}
+
+h5 {
+ font-size: 0.875em
+}
+
+h6 {
+ font-size: 0.85em;
+ color: #6a737d
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ width: 100%;
+
+ &+table {
+ margin-top: 16px;
+ }
+}
+
+table th {
+ font-weight: 600;
+ white-space: nowrap;
+ color: #5c6b77;
+ background: rgba(0, 0, 0, .02);
+}
+
+table th,
+table td {
+ padding: 8px 13px;
+ border: 1px solid #dfe2e5;
+}
+
+table tr {
+ background-color: #fff;
+ border-top: 1px solid #c6cbd1;
+}
+
+table tr:nth-child(2n) {
+ background-color: #f6f8fa;
+}
+
+table img {
+ background-color: transparent;
+}
+
+img {
+ max-width: 100%;
+ box-sizing: content-box;
+ background-color: #fff;
+ vertical-align: middle;
+}
+
+img[align=right] {
+ padding-left: 20px;
+}
+
+img[align=left] {
+ padding-right: 20px;
+}
+
+.comment,
+.quote {
+ color: #998;
+}
+
+.keyword,
+.selector-tag,
+.subst {
+ color: #333;
+ font-weight: bold;
+}
+
+.number,
+.literal,
+.variable,
+.template-variable,
+.tag .attr {
+ color: #008080;
+}
+
+.string,
+.doctag {
+ color: #d14;
+}
+
+.title,
+.section,
+.selector-id {
+ color: #900;
+ font-weight: bold;
+}
+
+.subst {
+ font-weight: normal;
+}
+
+.type,
+.class .title {
+ color: #458;
+ font-weight: bold;
+}
+
+.tag,
+.name,
+.attribute {
+ color: #000098;
+ font-weight: normal;
+}
+
+.regexp,
+.link {
+ color: #009926;
+}
+
+.symbol,
+.bullet {
+ color: #990073;
+}
+
+.built_in,
+.builtin-name {
+ color: #0086b3;
+}
+
+.meta {
+ color: #999;
+ font-weight: bold;
+}
+
+.deletion {
+ background: #fdd;
+}
+
+.addition {
+ background: #dfd;
+}
+
+.emphasis {
+ font-style: italic;
+}
+
+.strong {
+ font-weight: bold;
+}
\ No newline at end of file
diff --git a/packages/crd-theme/markdown/style/diff.less b/packages/crd-theme/markdown/style/diff.less
new file mode 100644
index 00000000..7b458730
--- /dev/null
+++ b/packages/crd-theme/markdown/style/diff.less
@@ -0,0 +1,3 @@
+.language-diff {
+
+}
\ No newline at end of file
diff --git a/packages/crd-theme/markdown/style/index.less b/packages/crd-theme/markdown/style/index.less
new file mode 100644
index 00000000..57bd9df9
--- /dev/null
+++ b/packages/crd-theme/markdown/style/index.less
@@ -0,0 +1,33 @@
+.markdown {
+ padding: 0 40px 20px 40px;
+ margin: 0 auto;
+ font-size: 14px;
+ line-height: 1.5;
+ word-wrap: break-word;
+ color: #314659;
+ & >*:first-child {
+ margin-top: 0 !important
+ }
+
+ & >*:last-child {
+ margin-bottom: 0 !important
+ }
+ :global {
+ @import "./default.less";
+ @import "./xml.less";
+ @import "./swift.less";
+ @import "./diff.less";
+ @import "./css.less";
+ @import "./javascript.less";
+ }
+}
+
+.pageTitle {
+ font-size: 30px;
+ line-height: 38px;
+ color: #0d1a26;
+ font-weight: 500;
+ margin-bottom: 20px;
+ margin-top: 8px;
+ padding-left: 20px;
+}
diff --git a/packages/crd-theme/markdown/style/javascript.less b/packages/crd-theme/markdown/style/javascript.less
new file mode 100644
index 00000000..ad9a21be
--- /dev/null
+++ b/packages/crd-theme/markdown/style/javascript.less
@@ -0,0 +1,34 @@
+.language-jsx, .language-js,.language-javascript{
+ .keyword, .selector-tag {
+ color: #b111bf;
+ font-weight: 600;
+ }
+ .subst {
+ color: #0000ca;
+ }
+ .title, .section {
+ color: #4e00dc;
+ font-weight: normal;
+ }
+ .string, .doctag {
+ color: #d73a49;
+ }
+ .attr {
+ color: #0000ca;
+ }
+ .class .keyword{
+ color: #008cd4;
+ }
+ .function {
+ color: #0000ca;
+ .params {
+ color: #008cd4;
+ }
+ }
+}
+.language-json {
+ color: #444;
+ .attr {
+ color: #0000ca;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-theme/markdown/style/swift.less b/packages/crd-theme/markdown/style/swift.less
new file mode 100644
index 00000000..dc23959c
--- /dev/null
+++ b/packages/crd-theme/markdown/style/swift.less
@@ -0,0 +1,14 @@
+.language-swift {
+ .keyword, .selector-tag, .subst {
+ color: #C600AA;
+ font-weight: normal;
+ }
+ .meta {
+ color: #C526D0;
+ font-weight: normal;
+ }
+ .type, .class .title {
+ color: #7C10B2;
+ font-weight: normal;
+ }
+}
\ No newline at end of file
diff --git a/packages/crd-theme/markdown/style/xml.less b/packages/crd-theme/markdown/style/xml.less
new file mode 100644
index 00000000..122894a0
--- /dev/null
+++ b/packages/crd-theme/markdown/style/xml.less
@@ -0,0 +1,3 @@
+.language-html, .xml{
+
+}
diff --git a/packages/crd-theme/package.json b/packages/crd-theme/package.json
new file mode 100644
index 00000000..ac503dc7
--- /dev/null
+++ b/packages/crd-theme/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "crd-theme",
+ "version": "1.10.3",
+ "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",
+ "prism-react-renderer": "^1.2.1",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
+ "react-helmet": "^6.1.0",
+ "react-hot-loader": "^4.1.1",
+ "react-markdown": "^3.3.0"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MuYunyun/create-react-doc",
+ "directory": "packages/theme"
+ },
+ "keywords": [],
+ "publishConfig": {
+ "access": "public"
+ },
+ "author": "muyunyun",
+ "license": "MIT",
+ "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199",
+ "devDependencies": {
+ "@types/react": "^17.0.43",
+ "@types/react-dom": "^17.0.14"
+ }
+}
diff --git a/packages/crd-utils/.npmrc b/packages/crd-utils/.npmrc
new file mode 100644
index 00000000..7edb6af8
--- /dev/null
+++ b/packages/crd-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-utils/README.md b/packages/crd-utils/README.md
new file mode 100644
index 00000000..1cecf0aa
--- /dev/null
+++ b/packages/crd-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/crd-utils/index.js b/packages/crd-utils/index.js
new file mode 100644
index 00000000..f8f04fe5
--- /dev/null
+++ b/packages/crd-utils/index.js
@@ -0,0 +1,75 @@
+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 = () => {
+ if (!fs.existsSync(docsConfig)) {
+ return null
+ }
+ return yaml.safeLoad(fs.readFileSync(docsConfig))
+}
+
+/**
+ * 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 = source
+ ? data.toString().replace(source, target)
+ : `${target}\n${data.toString()}`
+ fs.writeFile(path, replaceResult, (err) => {
+ if (err) {
+ console.log(`❎ writeFileContent error in ${path}`)
+ return
+ }
+ })
+ console.log(`✅ writeFileContent success in ${path}`)
+ })
+}
+
+// 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,
+ replaceForFrontMatter,
+ generateRandomId,
+ // common paths
+ docsGitIgnore: resolveApp('.gitignore'),
+ docsBase: resolveApp(''),
+ docsConfig,
+ 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'),
+}
diff --git a/packages/crd-utils/package.json b/packages/crd-utils/package.json
new file mode 100644
index 00000000..672ef44d
--- /dev/null
+++ b/packages/crd-utils/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "crd-utils",
+ "version": "1.5.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",
+ "directory": "packages/utils"
+ },
+ "keywords": [],
+ "publishConfig": {
+ "access": "public"
+ },
+ "author": "muyunyun",
+ "license": "MIT",
+ "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199"
+}
diff --git a/packages/crd-utils/path.js b/packages/crd-utils/path.js
new file mode 100644
index 00000000..0e54be2e
--- /dev/null
+++ b/packages/crd-utils/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/create-react-doc/.npmignore b/packages/create-react-doc/.npmignore
new file mode 100644
index 00000000..778d87ef
--- /dev/null
+++ b/packages/create-react-doc/.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/packages/create-react-doc/.npmrc b/packages/create-react-doc/.npmrc
new file mode 100644
index 00000000..7edb6af8
--- /dev/null
+++ b/packages/create-react-doc/.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/create-react-doc/.yarnrc b/packages/create-react-doc/.yarnrc
new file mode 100644
index 00000000..4e37330a
--- /dev/null
+++ b/packages/create-react-doc/.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/packages/create-react-doc/README.md b/packages/create-react-doc/README.md
new file mode 100644
index 00000000..a4a4ad28
--- /dev/null
+++ b/packages/create-react-doc/README.md
@@ -0,0 +1,28 @@
+ _.-"\
+ _.-" \
+ ,-" \
+ \ create \
+ \ \ react \
+ \ \ doc \
+ \ \ _.-;
+ \ \ _.-" :
+ \ \,-" _.-"
+ \( _.-"
+ `--"
+
+# 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 theme // 创建新主题包
+$ react-doc generate // 用于自动生成 Front-matter 中相关字段信息
+```
+
+# 调试
+
+进入该目录, 执行 `yarn link`, 即可在全局使用 react-doc xxx 命令。
diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js
new file mode 100755
index 00000000..4df3c505
--- /dev/null
+++ b/packages/create-react-doc/index.js
@@ -0,0 +1,117 @@
+#!/usr/bin/env node
+const fs = require('fs-extra')
+const path = require('path')
+const program = require('commander')
+const {
+ initProject,
+ initTheme,
+ initCache,
+ Deploy,
+ Generate,
+ Servers,
+ Build,
+} = require('crd-scripts')
+const { docsReadme, docsBuildDist, getDocsConfig } = require('crd-utils')
+const input = require('@inquirer/input')
+const pkg = require('./package.json')
+
+program
+ .version(pkg.version, '-v, --version')
+ .description('Markdown doc site generator for React.')
+ .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')
+ .option('-b, --branch ', 'Name of the branch you are pushing to.', 'gh-pages')
+ .on('--help', () => {
+ console.log('\n Examples:')
+ console.log()
+ console.log(' $ react-doc xxx')
+ 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, generate } = program
+if (!start && !build && !deploy && !theme && !generate) return initProject(program)
+
+if (theme) {
+ return input({
+ message: "What's the theme name?",
+ validate: (inputThemeName) => {
+ if (inputThemeName.length === 0) return 'Please input correct theme name'
+ return true
+ },
+ }).then((themeName) => {
+ initTheme(themeName)
+ })
+}
+
+// create-react-doc tool root dir.
+// program.crdPath = path.join(__dirname, '../');
+// all markdown dir
+program.markdownPaths = []
+// dir for output
+program.output = path.join(process.cwd(), program.output)
+const docsConfig = getDocsConfig()
+
+// assign all the markdown dir
+if (start || build || generate) {
+ fs.existsSync(docsReadme) &&
+ program.markdownPaths.push(docsReadme)
+
+ docsConfig &&
+ docsConfig.menu
+ .forEach(itemPath =>
+ program.markdownPaths.push(path.join(process.cwd(), itemPath))
+ )
+}
+
+if (build && fs.pathExistsSync(docsBuildDist)) {
+ // clean dir
+ fs.emptyDirSync(docsBuildDist)
+}
+
+// deploy code to special git repo and branch.
+if (deploy) {
+ return Deploy(program, docsConfig)
+}
+
+// no point markdown paths
+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)) {
+ isExists = false
+ }
+})
+
+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)
+ }
+})
diff --git a/packages/create-react-doc/package.json b/packages/create-react-doc/package.json
new file mode 100644
index 00000000..079a9bb2
--- /dev/null
+++ b/packages/create-react-doc/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "create-react-doc",
+ "version": "1.10.3",
+ "description": "Fast static generated site. Just write markdown file.",
+ "homepage": "",
+ "bin": {
+ "react-doc": "./index.js"
+ },
+ "scripts": {},
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MuYunyun/create-react-doc",
+ "directory": "packages/create-react-doc"
+ },
+ "keywords": [
+ "react",
+ "create-react-doc",
+ "blog",
+ "markdown"
+ ],
+ "author": "muyunyun",
+ "publishConfig": {
+ "access": "public"
+ },
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/input": "^0.0.13-alpha.0",
+ "commander": "^2.12.2",
+ "crd-scripts": "^1.10.3",
+ "crd-templates": "^1.10.0",
+ "crd-theme": "^1.10.3",
+ "fs-extra": "^5.0.0"
+ },
+ "gitHead": "ffc5e4cbc94a7356da558c2dbf46e2f39bb8b199"
+}
diff --git a/packages/leetcode-cli/.npmrc b/packages/leetcode-cli/.npmrc
new file mode 100644
index 00000000..7edb6af8
--- /dev/null
+++ b/packages/leetcode-cli/.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/leetcode-cli/README.md b/packages/leetcode-cli/README.md
new file mode 100644
index 00000000..ceedd03a
--- /dev/null
+++ b/packages/leetcode-cli/README.md
@@ -0,0 +1,65 @@
+### crd-leetcode-cli
+
+crd-leetcode-cli 提供将 [leetcode](https://leetcode-cn.com/) 中已 AC 的题目转化为 markdown 表格的能力。
+
+### Install
+
+执行 `yarn add crd-leetcode-cli -g`, 国内用户可以执行 `cnpm install crd-leetcode-cli -g`
+
+### Usage
+
+```
+leetcode download // 增量拉取 AC 题目(若无登录, 则会先执行登录逻辑)
+leetcode download -a // 全量拉取 AC 题目
+leetcode login // 登录
+leetcode logout // 登出
+```
+
+> [接入项目示例](https://github.com/MuYunyun/blog/blob/main/package.json#L8-L9)
+
+### Render Markdown Table Customly
+
+插件提供了自定义渲染 markdown table 的能力。
+
+* 在项目根目录创建 [config.js](https://github.com/MuYunyun/blog/blob/main/config.js) 文件。
+* 在 config.js 内自定义生成 markdown 的 [transform_markdown_table](https://github.com/MuYunyun/blog/blob/main/config.js#L5-L22) 函数。
+
+```js
+const transform_markdown_table = (dataArr) => {
+ const beforeDescription = `The markdown table is generated by [crd-leetcode-cli](https://github.com/MuYunyun/create-react-doc/tree/main/packages/leetcode-cli)`;
+ let result = beforeDescription + '\n' +
+ '| # | Title | Explanation | Difficulty | Type |' +
+ '\n' +
+ '|:---:|:---:|:---:|:---:|:---:|';
+
+ for (let i = 0; i < dataArr.length; i++) {
+ result += `\n| ${dataArr[i].questionId} | [${dataArr[i].title
+ }](https://leetcode.com/problems/${dataArr[i].titleSlug
+ }/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/${dataArr[i].questionId
+ }.${dataArr[i].title.split(' ').join('_')}.md) | ${dataArr[i].difficulty
+ } | ${dataArr[i].topicTags} |`;
+ }
+ return result;
+};
+
+module.exports = { transform_markdown_table }
+```
+
+通过自定义 transform_markdown_table 函数, 便可得到如下 [markdown table](https://github.com/MuYunyun/blog/tree/main/LeetCode):
+
+![](http://with.muyunyun.cn/0dd6ef8677ddcbd904cff9a23722df18.jpg)
+
+### Technology Details
+
+* 使用 [puppeteer](https://github.com/puppeteer/puppeteer) 登录 leetcode 获取 cookie 信息。
+ * ![](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/package.json b/packages/leetcode-cli/package.json
new file mode 100644
index 00000000..4315b2f6
--- /dev/null
+++ b/packages/leetcode-cli/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "crd-leetcode-cli",
+ "version": "1.10.2",
+ "description": "Generate leetcode table autoly",
+ "bin": {
+ "leetcode": "./src/cli.js"
+ },
+ "dependencies": {
+ "axios": "^1.6.2",
+ "commander": "^2.20.0",
+ "crd-utils": "^1.5.0",
+ "enquirer": "^2.3.0",
+ "graphql-request": "^1.8.2",
+ "inquirer": "^7.3.3",
+ "node-fs-extra": "^0.8.2",
+ "ora": "^3.4.0",
+ "puppeteer": "^5.3.0",
+ "puppeteer-extra": "^3.1.15",
+ "puppeteer-extra-plugin-stealth": "^2.6.1",
+ "request": "^2.88.0",
+ "shelljs": "^0.8.3"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/MuYunyun/create-react-doc",
+ "directory": "packages/leetcode"
+ },
+ "keywords": [],
+ "publishConfig": {
+ "access": "public"
+ },
+ "author": "muyunyun",
+ "license": "MIT",
+ "gitHead": "d8a8dff5697da28623361231bd9b3d848d050e8b"
+}
diff --git a/packages/leetcode-cli/problems.json b/packages/leetcode-cli/problems.json
new file mode 100644
index 00000000..aef311ef
--- /dev/null
+++ b/packages/leetcode-cli/problems.json
@@ -0,0 +1,1026 @@
+[
+ {
+ "title": "Two Sum",
+ "titleSlug": "two-sum",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "1",
+ "topicTags": "Array, Hash Table"
+ },
+ {
+ "title": "Add Two Numbers",
+ "titleSlug": "add-two-numbers",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "2",
+ "topicTags": "Recursion, Linked List, Math"
+ },
+ {
+ "title": "Longest Substring Without Repeating Characters",
+ "titleSlug": "longest-substring-without-repeating-characters",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "3",
+ "topicTags": "Hash Table, Two Pointers, String, Sliding Window"
+ },
+ {
+ "title": "Median of Two Sorted Arrays",
+ "titleSlug": "median-of-two-sorted-arrays",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "4",
+ "topicTags": "Array, Binary Search, Divide and Conquer"
+ },
+ {
+ "title": "Reverse Integer",
+ "titleSlug": "reverse-integer",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "7",
+ "topicTags": "Math"
+ },
+ {
+ "title": "Palindrome Number",
+ "titleSlug": "palindrome-number",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "9",
+ "topicTags": "Math"
+ },
+ {
+ "title": "Container With Most Water",
+ "titleSlug": "container-with-most-water",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "11",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Roman to Integer",
+ "titleSlug": "roman-to-integer",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "13",
+ "topicTags": "Math, String"
+ },
+ {
+ "title": "Longest Common Prefix",
+ "titleSlug": "longest-common-prefix",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "14",
+ "topicTags": "String"
+ },
+ {
+ "title": "3Sum",
+ "titleSlug": "3sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "15",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "3Sum Closest",
+ "titleSlug": "3sum-closest",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "16",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Letter Combinations of a Phone Number",
+ "titleSlug": "letter-combinations-of-a-phone-number",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "17",
+ "topicTags": "Depth-first Search, Recursion, String, Backtracking"
+ },
+ {
+ "title": "4Sum",
+ "titleSlug": "4sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "18",
+ "topicTags": "Array, Hash Table, Two Pointers"
+ },
+ {
+ "title": "Remove Nth Node From End of List",
+ "titleSlug": "remove-nth-node-from-end-of-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "19",
+ "topicTags": "Linked List, Two Pointers"
+ },
+ {
+ "title": "Valid Parentheses",
+ "titleSlug": "valid-parentheses",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "20",
+ "topicTags": "Stack, String"
+ },
+ {
+ "title": "Merge Two Sorted Lists",
+ "titleSlug": "merge-two-sorted-lists",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "21",
+ "topicTags": "Recursion, Linked List"
+ },
+ {
+ "title": "Generate Parentheses",
+ "titleSlug": "generate-parentheses",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "22",
+ "topicTags": "String, Backtracking"
+ },
+ {
+ "title": "Merge k Sorted Lists",
+ "titleSlug": "merge-k-sorted-lists",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "23",
+ "topicTags": "Heap, Linked List, Divide and Conquer"
+ },
+ {
+ "title": "Swap Nodes in Pairs",
+ "titleSlug": "swap-nodes-in-pairs",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "24",
+ "topicTags": "Recursion, Linked List"
+ },
+ {
+ "title": "Reverse Nodes in k-Group",
+ "titleSlug": "reverse-nodes-in-k-group",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "25",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Remove Duplicates from Sorted Array",
+ "titleSlug": "remove-duplicates-from-sorted-array",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "26",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Remove Element",
+ "titleSlug": "remove-element",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "27",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Implement strStr()",
+ "titleSlug": "implement-strstr",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "28",
+ "topicTags": "Two Pointers, String"
+ },
+ {
+ "title": "Search in Rotated Sorted Array",
+ "titleSlug": "search-in-rotated-sorted-array",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "33",
+ "topicTags": "Array, Binary Search"
+ },
+ {
+ "title": "Search Insert Position",
+ "titleSlug": "search-insert-position",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "35",
+ "topicTags": "Array, Binary Search"
+ },
+ {
+ "title": "Valid Sudoku",
+ "titleSlug": "valid-sudoku",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "36",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Sudoku Solver",
+ "titleSlug": "sudoku-solver",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "37",
+ "topicTags": "Hash Table, Backtracking"
+ },
+ {
+ "title": "Count and Say",
+ "titleSlug": "count-and-say",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "38",
+ "topicTags": "String"
+ },
+ {
+ "title": "Combination Sum",
+ "titleSlug": "combination-sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "39",
+ "topicTags": "Array, Backtracking"
+ },
+ {
+ "title": "Combination Sum II",
+ "titleSlug": "combination-sum-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "40",
+ "topicTags": "Array, Backtracking"
+ },
+ {
+ "title": "Permutations",
+ "titleSlug": "permutations",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "46",
+ "topicTags": "Backtracking"
+ },
+ {
+ "title": "Permutations II",
+ "titleSlug": "permutations-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "47",
+ "topicTags": "Backtracking"
+ },
+ {
+ "title": "Rotate Image",
+ "titleSlug": "rotate-image",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "48",
+ "topicTags": "Array"
+ },
+ {
+ "title": "Group Anagrams",
+ "titleSlug": "group-anagrams",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "49",
+ "topicTags": "Hash Table, String"
+ },
+ {
+ "title": "Pow(x, n)",
+ "titleSlug": "powx-n",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "50",
+ "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",
+ "titleSlug": "rotate-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "61",
+ "topicTags": "Linked List, Two Pointers"
+ },
+ {
+ "title": "Unique Paths",
+ "titleSlug": "unique-paths",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "62",
+ "topicTags": "Array, Dynamic Programming"
+ },
+ {
+ "title": "Minimum Path Sum",
+ "titleSlug": "minimum-path-sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "64",
+ "topicTags": "Array, Dynamic Programming"
+ },
+ {
+ "title": "Plus One",
+ "titleSlug": "plus-one",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "66",
+ "topicTags": "Array"
+ },
+ {
+ "title": "Add Binary",
+ "titleSlug": "add-binary",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "67",
+ "topicTags": "Math, String"
+ },
+ {
+ "title": "Sqrt(x)",
+ "titleSlug": "sqrtx",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "69",
+ "topicTags": "Math, Binary Search"
+ },
+ {
+ "title": "Climbing Stairs",
+ "titleSlug": "climbing-stairs",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "70",
+ "topicTags": "Dynamic Programming"
+ },
+ {
+ "title": "Simplify Path",
+ "titleSlug": "simplify-path",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "71",
+ "topicTags": "Stack, String"
+ },
+ {
+ "title": "Sort Colors",
+ "titleSlug": "sort-colors",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "75",
+ "topicTags": "Sort, Array, Two Pointers"
+ },
+ {
+ "title": "Combinations",
+ "titleSlug": "combinations",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "77",
+ "topicTags": "Backtracking"
+ },
+ {
+ "title": "Subsets",
+ "titleSlug": "subsets",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "78",
+ "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",
+ "titleSlug": "remove-duplicates-from-sorted-array-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "80",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Remove Duplicates from Sorted List II",
+ "titleSlug": "remove-duplicates-from-sorted-list-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "82",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Remove Duplicates from Sorted List",
+ "titleSlug": "remove-duplicates-from-sorted-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "83",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Partition List",
+ "titleSlug": "partition-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "86",
+ "topicTags": "Linked List, Two Pointers"
+ },
+ {
+ "title": "Merge Sorted Array",
+ "titleSlug": "merge-sorted-array",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "88",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Gray Code",
+ "titleSlug": "gray-code",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "89",
+ "topicTags": "Backtracking"
+ },
+ {
+ "title": "Subsets II",
+ "titleSlug": "subsets-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "90",
+ "topicTags": "Array, Backtracking"
+ },
+ {
+ "title": "Reverse Linked List II",
+ "titleSlug": "reverse-linked-list-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "92",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Restore IP Addresses",
+ "titleSlug": "restore-ip-addresses",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "93",
+ "topicTags": "String, Backtracking"
+ },
+ {
+ "title": "Binary Tree Inorder Traversal",
+ "titleSlug": "binary-tree-inorder-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "94",
+ "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",
+ "titleSlug": "same-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "100",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Symmetric Tree",
+ "titleSlug": "symmetric-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "101",
+ "topicTags": "Tree, Depth-first Search, Breadth-first Search"
+ },
+ {
+ "title": "Binary Tree Level Order Traversal",
+ "titleSlug": "binary-tree-level-order-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "102",
+ "topicTags": "Tree, Breadth-first Search"
+ },
+ {
+ "title": "Binary Tree Zigzag Level Order Traversal",
+ "titleSlug": "binary-tree-zigzag-level-order-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "103",
+ "topicTags": "Stack, Tree, Breadth-first Search"
+ },
+ {
+ "title": "Maximum Depth of Binary Tree",
+ "titleSlug": "maximum-depth-of-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "104",
+ "topicTags": "Tree, Depth-first Search, Recursion"
+ },
+ {
+ "title": "Binary Tree Level Order Traversal II",
+ "titleSlug": "binary-tree-level-order-traversal-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "107",
+ "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",
+ "titleSlug": "balanced-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "110",
+ "topicTags": "Tree, Depth-first Search, Recursion"
+ },
+ {
+ "title": "Minimum Depth of Binary Tree",
+ "titleSlug": "minimum-depth-of-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "111",
+ "topicTags": "Tree, Depth-first Search, Breadth-first Search"
+ },
+ {
+ "title": "Path Sum",
+ "titleSlug": "path-sum",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "112",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Path Sum II",
+ "titleSlug": "path-sum-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "113",
+ "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",
+ "titleSlug": "best-time-to-buy-and-sell-stock",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "121",
+ "topicTags": "Array, Dynamic Programming"
+ },
+ {
+ "title": "Valid Palindrome",
+ "titleSlug": "valid-palindrome",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "125",
+ "topicTags": "Two Pointers, String"
+ },
+ {
+ "title": "Word Ladder",
+ "titleSlug": "word-ladder",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "127",
+ "topicTags": "Breadth-first Search"
+ },
+ {
+ "title": "Sum Root to Leaf Numbers",
+ "titleSlug": "sum-root-to-leaf-numbers",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "129",
+ "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",
+ "titleSlug": "reorder-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "143",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Binary Tree Preorder Traversal",
+ "titleSlug": "binary-tree-preorder-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "144",
+ "topicTags": "Stack, Tree"
+ },
+ {
+ "title": "Binary Tree Postorder Traversal",
+ "titleSlug": "binary-tree-postorder-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "145",
+ "topicTags": "Stack, Tree"
+ },
+ {
+ "title": "Insertion Sort List",
+ "titleSlug": "insertion-sort-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "147",
+ "topicTags": "Sort, Linked List"
+ },
+ {
+ "title": "Sort List",
+ "titleSlug": "sort-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "148",
+ "topicTags": "Sort, Linked List"
+ },
+ {
+ "title": "Max Points on a Line",
+ "titleSlug": "max-points-on-a-line",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "149",
+ "topicTags": "Hash Table, Math"
+ },
+ {
+ "title": "Evaluate Reverse Polish Notation",
+ "titleSlug": "evaluate-reverse-polish-notation",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "150",
+ "topicTags": "Stack"
+ },
+ {
+ "title": "Reverse Words in a String",
+ "titleSlug": "reverse-words-in-a-string",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "151",
+ "topicTags": "String"
+ },
+ {
+ "title": "Two Sum II - Input array is sorted",
+ "titleSlug": "two-sum-ii-input-array-is-sorted",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "167",
+ "topicTags": "Array, Two Pointers, Binary Search"
+ },
+ {
+ "title": "Binary Tree Right Side View",
+ "titleSlug": "binary-tree-right-side-view",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "199",
+ "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",
+ "titleSlug": "happy-number",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "202",
+ "topicTags": "Hash Table, Math"
+ },
+ {
+ "title": "Remove Linked List Elements",
+ "titleSlug": "remove-linked-list-elements",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "203",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Isomorphic Strings",
+ "titleSlug": "isomorphic-strings",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "205",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Reverse Linked List",
+ "titleSlug": "reverse-linked-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "206",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Minimum Size Subarray Sum",
+ "titleSlug": "minimum-size-subarray-sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "209",
+ "topicTags": "Array, Two Pointers, Binary Search"
+ },
+ {
+ "title": "Kth Largest Element in an Array",
+ "titleSlug": "kth-largest-element-in-an-array",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "215",
+ "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",
+ "titleSlug": "contains-duplicate",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "217",
+ "topicTags": "Array, Hash Table"
+ },
+ {
+ "title": "Contains Duplicate II",
+ "titleSlug": "contains-duplicate-ii",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "219",
+ "topicTags": "Array, Hash Table"
+ },
+ {
+ "title": "Contains Duplicate III",
+ "titleSlug": "contains-duplicate-iii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "220",
+ "topicTags": "Sort, Ordered Map"
+ },
+ {
+ "title": "Count Complete Tree Nodes",
+ "titleSlug": "count-complete-tree-nodes",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "222",
+ "topicTags": "Tree, Binary Search"
+ },
+ {
+ "title": "Invert Binary Tree",
+ "titleSlug": "invert-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "226",
+ "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",
+ "titleSlug": "palindrome-linked-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "234",
+ "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",
+ "titleSlug": "delete-node-in-a-linked-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "237",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Valid Anagram",
+ "titleSlug": "valid-anagram",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "242",
+ "topicTags": "Sort, Hash Table"
+ },
+ {
+ "title": "Binary Tree Paths",
+ "titleSlug": "binary-tree-paths",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "257",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Perfect Squares",
+ "titleSlug": "perfect-squares",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "279",
+ "topicTags": "Breadth-first Search, Math, Dynamic Programming"
+ },
+ {
+ "title": "Move Zeroes",
+ "titleSlug": "move-zeroes",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "283",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Word Pattern",
+ "titleSlug": "word-pattern",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "290",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Odd Even Linked List",
+ "titleSlug": "odd-even-linked-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "328",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Flatten Nested List Iterator",
+ "titleSlug": "flatten-nested-list-iterator",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "341",
+ "topicTags": "Stack, Design"
+ },
+ {
+ "title": "Reverse String",
+ "titleSlug": "reverse-string",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "344",
+ "topicTags": "Two Pointers, String"
+ },
+ {
+ "title": "Top K Frequent Elements",
+ "titleSlug": "top-k-frequent-elements",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "347",
+ "topicTags": "Heap, Hash Table"
+ },
+ {
+ "title": "Intersection of Two Arrays",
+ "titleSlug": "intersection-of-two-arrays",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "349",
+ "topicTags": "Sort, Hash Table, Two Pointers, Binary Search"
+ },
+ {
+ "title": "Intersection of Two Arrays II",
+ "titleSlug": "intersection-of-two-arrays-ii",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "350",
+ "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",
+ "titleSlug": "sum-of-left-leaves",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "404",
+ "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",
+ "titleSlug": "find-all-anagrams-in-a-string",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "438",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Add Two Numbers II",
+ "titleSlug": "add-two-numbers-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "445",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Number of Boomerangs",
+ "titleSlug": "number-of-boomerangs",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "447",
+ "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",
+ "titleSlug": "sort-characters-by-frequency",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "451",
+ "topicTags": "Heap, Hash Table"
+ },
+ {
+ "title": "4Sum II",
+ "titleSlug": "4sum-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "454",
+ "topicTags": "Hash Table, Binary Search"
+ },
+ {
+ "title": "Permutation in String",
+ "titleSlug": "permutation-in-string",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "567",
+ "topicTags": "Two Pointers, Sliding Window"
+ }
+]
\ No newline at end of file
diff --git a/packages/leetcode-cli/src/cli.js b/packages/leetcode-cli/src/cli.js
new file mode 100755
index 00000000..5b108fe2
--- /dev/null
+++ b/packages/leetcode-cli/src/cli.js
@@ -0,0 +1,27 @@
+#!/usr/bin/env node
+const commander = require('commander')
+const packageJson = require('../package.json')
+const download = require('./download')
+const logout = require('./logout')
+const { login } = require('./leetcode')
+
+commander.version(packageJson.version)
+
+commander
+ .command('download')
+ .option('-a, --all', 'Download all your accepted code from LeetCode.')
+ .description('Download your new accepted code from LeetCode.')
+ .action(download)
+
+commander
+ .command('login')
+ .description('Log in to your Leetcode account.')
+ .action(login)
+
+commander
+ .command('logout')
+ .description('Logout current LeetCode account')
+ .description('Log out of current account.')
+ .action(logout)
+
+commander.parse(process.argv)
diff --git a/packages/leetcode-cli/src/download.js b/packages/leetcode-cli/src/download.js
new file mode 100644
index 00000000..a7ffaa38
--- /dev/null
+++ b/packages/leetcode-cli/src/download.js
@@ -0,0 +1,66 @@
+/* eslint-disable import/no-dynamic-require */
+/* eslint-disable global-require */
+const fs = require('fs')
+const ora = require('ora')
+const { transformToMarkdownTable, stringify } = require('./utils')
+const { getAllACQuestions, getQuestionData } = require('./leetcode')
+const { resolveApp } = require('crd-utils')
+
+const difference = (problemsA = [], problemsB = []) => {
+ const map = problemsB.reduce((acc, problem) => {
+ acc[problem.titleSlug] = true
+ return acc
+ }, {})
+ return problemsA.filter(problem => !map[problem.titleSlug])
+}
+const download = async (command) => {
+ const problemsPath = 'problems.json'
+ // get incremental problems through comapre json
+ let problems = []
+ let questions = await getAllACQuestions()
+ if (!command.all) {
+ if (fs.existsSync(problemsPath)) {
+ problems = JSON.parse(fs.readFileSync(problemsPath))
+ }
+ questions = difference(questions, problems)
+ }
+
+ const spinner = ora('Downloading accepted code...\n').start()
+ const aux = async (xs = []) => {
+ if (xs.length === 0) {
+ return
+ }
+ const current = xs.shift()
+ try {
+ const { topicTags } = await getQuestionData(current.titleSlug)
+ const result = topicTags.reduce((prev, cur) => {
+ if (prev === '') return cur.name
+ return `${prev}, ${cur.name}`
+ }, '')
+ current.topicTags = result
+ } catch (error) {
+ console.error(error.message)
+ }
+ spinner.text = `${questions.length - xs.length}/${questions.length}: [${
+ current.title
+ }] has downloaded.`
+ problems.push(current)
+ // it can be extracted in to config if there is need.
+ let leetcodeReadme = 'leetcode-table.md'
+ if (fs.existsSync(resolveApp('LeetCode/README.md'))) {
+ leetcodeReadme = resolveApp('LeetCode/README.md')
+ }
+ let transformMarkdownTable = transformToMarkdownTable
+ if (fs.existsSync(resolveApp('config.js'))) {
+ transformMarkdownTable = require(resolveApp('config.js')).transform_markdown_table
+ }
+ fs.writeFileSync(leetcodeReadme, transformMarkdownTable(problems))
+ // the problemsPath is to get incremental data.
+ fs.writeFileSync(problemsPath, stringify(problems))
+ await aux(xs)
+ }
+ await aux([...questions])
+ spinner.stop()
+}
+
+module.exports = download
diff --git a/packages/leetcode-cli/src/leetcode-table.md b/packages/leetcode-cli/src/leetcode-table.md
new file mode 100644
index 00000000..5f187c40
--- /dev/null
+++ b/packages/leetcode-cli/src/leetcode-table.md
@@ -0,0 +1,110 @@
+| # | Title | Explanation | Difficulty | Type |
+|:---:|:---:|:---:|:---:|:---:|
+| 1 | [Two Sum](https://leetcode.com/problems/two-sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/LeetCode/2.Add_Two_Numbers.md) | Medium | 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/master/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/master/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/master/LeetCode/7.Reverse_Integer.md) | Easy | Math |
+| 9 | [Palindrome Number](https://leetcode.com/problems/palindrome-number/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/LeetCode/14.Longest_Common_Prefix.md) | Easy | String |
+| 15 | [3Sum](https://leetcode.com/problems/3sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/15.3Sum.md) | Medium | Array, Two Pointers |
+| 16 | [3Sum Closest](https://leetcode.com/problems/3sum-closest/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/LeetCode/17.Letter_Combinations_of_a_Phone_Number.md) | Medium | String, Backtracking |
+| 18 | [4Sum](https://leetcode.com/problems/4sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/LeetCode/21.Merge_Two_Sorted_Lists.md) | Easy | Linked List |
+| 22 | [Generate Parentheses](https://leetcode.com/problems/generate-parentheses/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/LeetCode/24.Swap_Nodes_in_Pairs.md) | Medium | Linked List |
+| 25 | [Reverse Nodes in k-Group](https://leetcode.com/problems/reverse-nodes-in-k-group/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/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/master/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/master/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/master/LeetCode/36.Valid_Sudoku.md) | Medium | Hash Table |
+| 38 | [Count and Say](https://leetcode.com/problems/count-and-say/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/38.Count_and_Say.md) | Easy | String |
+| 39 | [Combination Sum](https://leetcode.com/problems/combination-sum/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/LeetCode/40.Combination_Sum_II.md) | Medium | Array, Backtracking |
+| 46 | [Permutations](https://leetcode.com/problems/permutations/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/46.Permutations.md) | Medium | Backtracking |
+| 47 | [Permutations II](https://leetcode.com/problems/permutations-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/47.Permutations_II.md) | Medium | Backtracking |
+| 48 | [Rotate Image](https://leetcode.com/problems/rotate-image/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/48.Rotate_Image.md) | Medium | Array |
+| 49 | [Group Anagrams](https://leetcode.com/problems/group-anagrams/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/LeetCode/50.Pow(x,_n).md) | Medium | Math, Binary Search |
+| 61 | [Rotate List](https://leetcode.com/problems/rotate-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/LeetCode/66.Plus_One.md) | Easy | Array |
+| 67 | [Add Binary](https://leetcode.com/problems/add-binary/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/67.Add_Binary.md) | Easy | Math, String |
+| 69 | [Sqrt(x)](https://leetcode.com/problems/sqrtx/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/LeetCode/70.Climbing_Stairs.md) | Easy | Dynamic Programming |
+| 71 | [Simplify Path](https://leetcode.com/problems/simplify-path/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/71.Simplify_Path.md) | Medium | Stack, String |
+| 75 | [Sort Colors](https://leetcode.com/problems/sort-colors/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/75.Sort_Colors.md) | Medium | Sort, Array, Two Pointers |
+| 78 | [Subsets](https://leetcode.com/problems/subsets/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/78.Subsets.md) | Medium | Bit Manipulation, 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/master/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/master/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/master/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/master/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/master/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/master/LeetCode/89.Gray_Code.md) | Medium | Backtracking |
+| 92 | [Reverse Linked List II](https://leetcode.com/problems/reverse-linked-list-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/LeetCode/94.Binary_Tree_Inorder_Traversal.md) | Medium | Stack, Tree, Hash Table |
+| 100 | [Same Tree](https://leetcode.com/problems/same-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/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/master/LeetCode/104.Maximum_Depth_of_Binary_Tree.md) | Easy | Tree, Depth-first Search |
+| 107 | [Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/107.Binary_Tree_Level_Order_Traversal_II.md) | Easy | Tree, Breadth-first Search |
+| 110 | [Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/110.Balanced_Binary_Tree.md) | Easy | Tree, Depth-first Search |
+| 111 | [Minimum Depth of Binary Tree](https://leetcode.com/problems/minimum-depth-of-binary-tree/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/LeetCode/113.Path_Sum_II.md) | Medium | Tree, Depth-first Search |
+| 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/master/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/master/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/master/LeetCode/127.Word_Ladder.md) | Medium | 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/master/LeetCode/129.Sum_Root_to_Leaf_Numbers.md) | Medium | Tree, Depth-first Search |
+| 143 | [Reorder List](https://leetcode.com/problems/reorder-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/LeetCode/199.Binary_Tree_Right_Side_View.md) | Medium | Tree, Depth-first Search, Breadth-first Search |
+| 202 | [Happy Number](https://leetcode.com/problems/happy-number/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/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/master/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/master/LeetCode/215.Kth_Largest_Element_in_an_Array.md) | Medium | Heap, Divide and Conquer |
+| 217 | [Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/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/master/LeetCode/226.Invert_Binary_Tree.md) | Easy | Tree |
+| 234 | [Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/234.Palindrome_Linked_List.md) | Easy | Linked List, Two Pointers |
+| 237 | [Delete Node in a Linked List](https://leetcode.com/problems/delete-node-in-a-linked-list/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/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/master/LeetCode/350.Intersection_of_Two_Arrays_II.md) | Easy | Sort, Hash Table, Two Pointers, Binary Search |
+| 404 | [Sum of Left Leaves](https://leetcode.com/problems/sum-of-left-leaves/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/LeetCode/404.Sum_of_Left_Leaves.md) | Easy | 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/master/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/master/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/master/LeetCode/447.Number_of_Boomerangs.md) | Easy | Hash Table |
+| 451 | [Sort Characters By Frequency](https://leetcode.com/problems/sort-characters-by-frequency/) | [Analyze](https://github.com/MuYunyun/blog/blob/master/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/master/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/master/LeetCode/567.Permutation_in_String.md) | Medium | 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
new file mode 100644
index 00000000..35aed6ce
--- /dev/null
+++ b/packages/leetcode-cli/src/leetcode.js
@@ -0,0 +1,148 @@
+const { GraphQLClient } = require('graphql-request')
+const ora = require('ora')
+const inquirer = require('inquirer')
+const puppeteer = require('puppeteer-extra')
+const StealthPlugin = require('puppeteer-extra-plugin-stealth')
+
+const {
+ // request,
+ getHeaders,
+ // unicodeToChar,
+ removeConfig,
+ getConfig,
+ setConfig,
+} = require('./utils')
+
+// use this plugin to close to the real login.
+puppeteer.use(StealthPlugin())
+
+const { country } = getConfig()
+
+const usUrl = 'https://leetcode.com'
+const cnUrl = 'https://leetcode-cn.com'
+const baseUrl = country === 'us' ? usUrl : cnUrl
+const graphqlUrl = `${baseUrl}/graphql`
+
+const login = async () => {
+ let loginUrl = baseUrl
+ if (country === undefined) {
+ loginUrl = (
+ await inquirer.prompt({
+ name: 'baseUrl',
+ type: 'list',
+ message: 'Log in to:',
+ choices: [usUrl, cnUrl],
+ })
+ ).baseUrl
+ setConfig({ country: loginUrl === cnUrl ? 'cn' : 'us' })
+ }
+ loginUrl += '/accounts/login/'
+
+ const spinner = ora('Login...').start()
+ try {
+ // 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')
+ let cookies = await page.cookies()
+ await browser.close()
+ spinner.stop()
+ cookies = cookies.reduce((acc, cookie) => {
+ const { name } = cookie
+ acc[name] = cookie
+ return acc
+ }, {})
+ setConfig({ cookies })
+ return cookies
+ } catch (error) {
+ console.error('Login failure, retry...', error.message)
+ throw error
+ } finally {
+ spinner.stop()
+ }
+}
+
+const getCookie = async () => {
+ // eslint-disable-line
+ try {
+ const { cookies } = getConfig()
+ const { LEETCODE_SESSION } = cookies
+ if (
+ !LEETCODE_SESSION ||
+ new Date(LEETCODE_SESSION.expires) <= new Date().getTime() / 1000
+ ) {
+ console.error('Cookie expires, retry...')
+ removeConfig('cookies')
+ return getCookie()
+ }
+ return Object.keys(cookies).reduce((acc, name) => {
+ acc[name] = cookies[name].value
+ return acc
+ }, {})
+ } catch (error) {
+ const cookies = await login()
+ return cookies
+ }
+}
+
+const createGqlRequest = async () => {
+ const cookies = await getCookie()
+ const client = new GraphQLClient(graphqlUrl, {
+ headers: getHeaders(cookies),
+ })
+ return client.request.bind(client)
+}
+
+// restful request
+// const createRequest = async () => {
+// const cookies = await getCookie();
+// return url =>
+// request(url, {
+// headers: getHeaders(cookies),
+// });
+// };
+const filterAcQuestions = (questions = []) =>
+ questions.filter(({ status }) => status === 'ac')
+
+const getAllACQuestions = async () => {
+ const gqlRequest = await createGqlRequest()
+ const spinner = ora('Fetching all questions...').start()
+ // interface see https://leetcode-cn.com/problems/add-two-numbers/
+ const json = await gqlRequest(`{
+ allQuestions{
+ title
+ titleSlug
+ status
+ difficulty
+ questionId,
+ }
+ }`)
+ spinner.stop()
+ const questions = json.allQuestions || []
+ return filterAcQuestions(questions)
+}
+
+// get details of ac code.
+const getQuestionData = async (titleSlug) => {
+ const qglRequest = await createGqlRequest()
+ // interface from 'https://leetcode-cn.com/problems/add-two-numbers/'
+ const json = await qglRequest(`{
+ question(titleSlug: "${titleSlug}") {
+ topicTags {
+ name
+ slug
+ }
+ }
+ }`)
+ const question = json.question || {}
+ return question
+}
+
+module.exports = {
+ login,
+ getAllACQuestions,
+ getQuestionData,
+ getCookie,
+}
diff --git a/packages/leetcode-cli/src/logout.js b/packages/leetcode-cli/src/logout.js
new file mode 100644
index 00000000..656f6783
--- /dev/null
+++ b/packages/leetcode-cli/src/logout.js
@@ -0,0 +1,7 @@
+const { removeConfig } = require('./utils')
+
+const logOut = () => {
+ removeConfig('cookies')
+}
+
+module.exports = logOut
diff --git a/packages/leetcode-cli/src/problems.json b/packages/leetcode-cli/src/problems.json
new file mode 100644
index 00000000..62c86752
--- /dev/null
+++ b/packages/leetcode-cli/src/problems.json
@@ -0,0 +1,866 @@
+[
+ {
+ "title": "Two Sum",
+ "titleSlug": "two-sum",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "1",
+ "topicTags": "Array, Hash Table"
+ },
+ {
+ "title": "Add Two Numbers",
+ "titleSlug": "add-two-numbers",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "2",
+ "topicTags": "Linked List, Math"
+ },
+ {
+ "title": "Longest Substring Without Repeating Characters",
+ "titleSlug": "longest-substring-without-repeating-characters",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "3",
+ "topicTags": "Hash Table, Two Pointers, String, Sliding Window"
+ },
+ {
+ "title": "Median of Two Sorted Arrays",
+ "titleSlug": "median-of-two-sorted-arrays",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "4",
+ "topicTags": "Array, Binary Search, Divide and Conquer"
+ },
+ {
+ "title": "Reverse Integer",
+ "titleSlug": "reverse-integer",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "7",
+ "topicTags": "Math"
+ },
+ {
+ "title": "Palindrome Number",
+ "titleSlug": "palindrome-number",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "9",
+ "topicTags": "Math"
+ },
+ {
+ "title": "Container With Most Water",
+ "titleSlug": "container-with-most-water",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "11",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Roman to Integer",
+ "titleSlug": "roman-to-integer",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "13",
+ "topicTags": "Math, String"
+ },
+ {
+ "title": "Longest Common Prefix",
+ "titleSlug": "longest-common-prefix",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "14",
+ "topicTags": "String"
+ },
+ {
+ "title": "3Sum",
+ "titleSlug": "3sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "15",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "3Sum Closest",
+ "titleSlug": "3sum-closest",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "16",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Letter Combinations of a Phone Number",
+ "titleSlug": "letter-combinations-of-a-phone-number",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "17",
+ "topicTags": "String, Backtracking"
+ },
+ {
+ "title": "4Sum",
+ "titleSlug": "4sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "18",
+ "topicTags": "Array, Hash Table, Two Pointers"
+ },
+ {
+ "title": "Remove Nth Node From End of List",
+ "titleSlug": "remove-nth-node-from-end-of-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "19",
+ "topicTags": "Linked List, Two Pointers"
+ },
+ {
+ "title": "Valid Parentheses",
+ "titleSlug": "valid-parentheses",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "20",
+ "topicTags": "Stack, String"
+ },
+ {
+ "title": "Merge Two Sorted Lists",
+ "titleSlug": "merge-two-sorted-lists",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "21",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Generate Parentheses",
+ "titleSlug": "generate-parentheses",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "22",
+ "topicTags": "String, Backtracking"
+ },
+ {
+ "title": "Merge k Sorted Lists",
+ "titleSlug": "merge-k-sorted-lists",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "23",
+ "topicTags": "Heap, Linked List, Divide and Conquer"
+ },
+ {
+ "title": "Swap Nodes in Pairs",
+ "titleSlug": "swap-nodes-in-pairs",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "24",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Reverse Nodes in k-Group",
+ "titleSlug": "reverse-nodes-in-k-group",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "25",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Remove Duplicates from Sorted Array",
+ "titleSlug": "remove-duplicates-from-sorted-array",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "26",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Remove Element",
+ "titleSlug": "remove-element",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "27",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Implement strStr()",
+ "titleSlug": "implement-strstr",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "28",
+ "topicTags": "Two Pointers, String"
+ },
+ {
+ "title": "Search in Rotated Sorted Array",
+ "titleSlug": "search-in-rotated-sorted-array",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "33",
+ "topicTags": "Array, Binary Search"
+ },
+ {
+ "title": "Search Insert Position",
+ "titleSlug": "search-insert-position",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "35",
+ "topicTags": "Array, Binary Search"
+ },
+ {
+ "title": "Valid Sudoku",
+ "titleSlug": "valid-sudoku",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "36",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Count and Say",
+ "titleSlug": "count-and-say",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "38",
+ "topicTags": "String"
+ },
+ {
+ "title": "Combination Sum",
+ "titleSlug": "combination-sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "39",
+ "topicTags": "Array, Backtracking"
+ },
+ {
+ "title": "Combination Sum II",
+ "titleSlug": "combination-sum-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "40",
+ "topicTags": "Array, Backtracking"
+ },
+ {
+ "title": "Permutations",
+ "titleSlug": "permutations",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "46",
+ "topicTags": "Backtracking"
+ },
+ {
+ "title": "Permutations II",
+ "titleSlug": "permutations-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "47",
+ "topicTags": "Backtracking"
+ },
+ {
+ "title": "Rotate Image",
+ "titleSlug": "rotate-image",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "48",
+ "topicTags": "Array"
+ },
+ {
+ "title": "Group Anagrams",
+ "titleSlug": "group-anagrams",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "49",
+ "topicTags": "Hash Table, String"
+ },
+ {
+ "title": "Pow(x, n)",
+ "titleSlug": "powx-n",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "50",
+ "topicTags": "Math, Binary Search"
+ },
+ {
+ "title": "Rotate List",
+ "titleSlug": "rotate-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "61",
+ "topicTags": "Linked List, Two Pointers"
+ },
+ {
+ "title": "Unique Paths",
+ "titleSlug": "unique-paths",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "62",
+ "topicTags": "Array, Dynamic Programming"
+ },
+ {
+ "title": "Minimum Path Sum",
+ "titleSlug": "minimum-path-sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "64",
+ "topicTags": "Array, Dynamic Programming"
+ },
+ {
+ "title": "Plus One",
+ "titleSlug": "plus-one",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "66",
+ "topicTags": "Array"
+ },
+ {
+ "title": "Add Binary",
+ "titleSlug": "add-binary",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "67",
+ "topicTags": "Math, String"
+ },
+ {
+ "title": "Sqrt(x)",
+ "titleSlug": "sqrtx",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "69",
+ "topicTags": "Math, Binary Search"
+ },
+ {
+ "title": "Climbing Stairs",
+ "titleSlug": "climbing-stairs",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "70",
+ "topicTags": "Dynamic Programming"
+ },
+ {
+ "title": "Simplify Path",
+ "titleSlug": "simplify-path",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "71",
+ "topicTags": "Stack, String"
+ },
+ {
+ "title": "Sort Colors",
+ "titleSlug": "sort-colors",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "75",
+ "topicTags": "Sort, Array, Two Pointers"
+ },
+ {
+ "title": "Subsets",
+ "titleSlug": "subsets",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "78",
+ "topicTags": "Bit Manipulation, Array, Backtracking"
+ },
+ {
+ "title": "Remove Duplicates from Sorted Array II",
+ "titleSlug": "remove-duplicates-from-sorted-array-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "80",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Remove Duplicates from Sorted List II",
+ "titleSlug": "remove-duplicates-from-sorted-list-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "82",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Remove Duplicates from Sorted List",
+ "titleSlug": "remove-duplicates-from-sorted-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "83",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Partition List",
+ "titleSlug": "partition-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "86",
+ "topicTags": "Linked List, Two Pointers"
+ },
+ {
+ "title": "Merge Sorted Array",
+ "titleSlug": "merge-sorted-array",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "88",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Gray Code",
+ "titleSlug": "gray-code",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "89",
+ "topicTags": "Backtracking"
+ },
+ {
+ "title": "Reverse Linked List II",
+ "titleSlug": "reverse-linked-list-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "92",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Restore IP Addresses",
+ "titleSlug": "restore-ip-addresses",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "93",
+ "topicTags": "String, Backtracking"
+ },
+ {
+ "title": "Binary Tree Inorder Traversal",
+ "titleSlug": "binary-tree-inorder-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "94",
+ "topicTags": "Stack, Tree, Hash Table"
+ },
+ {
+ "title": "Same Tree",
+ "titleSlug": "same-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "100",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Symmetric Tree",
+ "titleSlug": "symmetric-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "101",
+ "topicTags": "Tree, Depth-first Search, Breadth-first Search"
+ },
+ {
+ "title": "Binary Tree Level Order Traversal",
+ "titleSlug": "binary-tree-level-order-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "102",
+ "topicTags": "Tree, Breadth-first Search"
+ },
+ {
+ "title": "Binary Tree Zigzag Level Order Traversal",
+ "titleSlug": "binary-tree-zigzag-level-order-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "103",
+ "topicTags": "Stack, Tree, Breadth-first Search"
+ },
+ {
+ "title": "Maximum Depth of Binary Tree",
+ "titleSlug": "maximum-depth-of-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "104",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Binary Tree Level Order Traversal II",
+ "titleSlug": "binary-tree-level-order-traversal-ii",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "107",
+ "topicTags": "Tree, Breadth-first Search"
+ },
+ {
+ "title": "Balanced Binary Tree",
+ "titleSlug": "balanced-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "110",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Minimum Depth of Binary Tree",
+ "titleSlug": "minimum-depth-of-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "111",
+ "topicTags": "Tree, Depth-first Search, Breadth-first Search"
+ },
+ {
+ "title": "Path Sum",
+ "titleSlug": "path-sum",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "112",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Path Sum II",
+ "titleSlug": "path-sum-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "113",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Best Time to Buy and Sell Stock",
+ "titleSlug": "best-time-to-buy-and-sell-stock",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "121",
+ "topicTags": "Array, Dynamic Programming"
+ },
+ {
+ "title": "Valid Palindrome",
+ "titleSlug": "valid-palindrome",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "125",
+ "topicTags": "Two Pointers, String"
+ },
+ {
+ "title": "Word Ladder",
+ "titleSlug": "word-ladder",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "127",
+ "topicTags": "Breadth-first Search"
+ },
+ {
+ "title": "Sum Root to Leaf Numbers",
+ "titleSlug": "sum-root-to-leaf-numbers",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "129",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Reorder List",
+ "titleSlug": "reorder-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "143",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Binary Tree Preorder Traversal",
+ "titleSlug": "binary-tree-preorder-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "144",
+ "topicTags": "Stack, Tree"
+ },
+ {
+ "title": "Binary Tree Postorder Traversal",
+ "titleSlug": "binary-tree-postorder-traversal",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "145",
+ "topicTags": "Stack, Tree"
+ },
+ {
+ "title": "Insertion Sort List",
+ "titleSlug": "insertion-sort-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "147",
+ "topicTags": "Sort, Linked List"
+ },
+ {
+ "title": "Sort List",
+ "titleSlug": "sort-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "148",
+ "topicTags": "Sort, Linked List"
+ },
+ {
+ "title": "Max Points on a Line",
+ "titleSlug": "max-points-on-a-line",
+ "status": "ac",
+ "difficulty": "Hard",
+ "questionId": "149",
+ "topicTags": "Hash Table, Math"
+ },
+ {
+ "title": "Evaluate Reverse Polish Notation",
+ "titleSlug": "evaluate-reverse-polish-notation",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "150",
+ "topicTags": "Stack"
+ },
+ {
+ "title": "Reverse Words in a String",
+ "titleSlug": "reverse-words-in-a-string",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "151",
+ "topicTags": "String"
+ },
+ {
+ "title": "Two Sum II - Input array is sorted",
+ "titleSlug": "two-sum-ii-input-array-is-sorted",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "167",
+ "topicTags": "Array, Two Pointers, Binary Search"
+ },
+ {
+ "title": "Binary Tree Right Side View",
+ "titleSlug": "binary-tree-right-side-view",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "199",
+ "topicTags": "Tree, Depth-first Search, Breadth-first Search"
+ },
+ {
+ "title": "Happy Number",
+ "titleSlug": "happy-number",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "202",
+ "topicTags": "Hash Table, Math"
+ },
+ {
+ "title": "Remove Linked List Elements",
+ "titleSlug": "remove-linked-list-elements",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "203",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Isomorphic Strings",
+ "titleSlug": "isomorphic-strings",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "205",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Reverse Linked List",
+ "titleSlug": "reverse-linked-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "206",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Minimum Size Subarray Sum",
+ "titleSlug": "minimum-size-subarray-sum",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "209",
+ "topicTags": "Array, Two Pointers, Binary Search"
+ },
+ {
+ "title": "Kth Largest Element in an Array",
+ "titleSlug": "kth-largest-element-in-an-array",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "215",
+ "topicTags": "Heap, Divide and Conquer"
+ },
+ {
+ "title": "Contains Duplicate",
+ "titleSlug": "contains-duplicate",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "217",
+ "topicTags": "Array, Hash Table"
+ },
+ {
+ "title": "Contains Duplicate II",
+ "titleSlug": "contains-duplicate-ii",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "219",
+ "topicTags": "Array, Hash Table"
+ },
+ {
+ "title": "Contains Duplicate III",
+ "titleSlug": "contains-duplicate-iii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "220",
+ "topicTags": "Sort, Ordered Map"
+ },
+ {
+ "title": "Count Complete Tree Nodes",
+ "titleSlug": "count-complete-tree-nodes",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "222",
+ "topicTags": "Tree, Binary Search"
+ },
+ {
+ "title": "Invert Binary Tree",
+ "titleSlug": "invert-binary-tree",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "226",
+ "topicTags": "Tree"
+ },
+ {
+ "title": "Palindrome Linked List",
+ "titleSlug": "palindrome-linked-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "234",
+ "topicTags": "Linked List, Two Pointers"
+ },
+ {
+ "title": "Delete Node in a Linked List",
+ "titleSlug": "delete-node-in-a-linked-list",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "237",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Valid Anagram",
+ "titleSlug": "valid-anagram",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "242",
+ "topicTags": "Sort, Hash Table"
+ },
+ {
+ "title": "Binary Tree Paths",
+ "titleSlug": "binary-tree-paths",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "257",
+ "topicTags": "Tree, Depth-first Search"
+ },
+ {
+ "title": "Perfect Squares",
+ "titleSlug": "perfect-squares",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "279",
+ "topicTags": "Breadth-first Search, Math, Dynamic Programming"
+ },
+ {
+ "title": "Move Zeroes",
+ "titleSlug": "move-zeroes",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "283",
+ "topicTags": "Array, Two Pointers"
+ },
+ {
+ "title": "Word Pattern",
+ "titleSlug": "word-pattern",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "290",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Odd Even Linked List",
+ "titleSlug": "odd-even-linked-list",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "328",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Flatten Nested List Iterator",
+ "titleSlug": "flatten-nested-list-iterator",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "341",
+ "topicTags": "Stack, Design"
+ },
+ {
+ "title": "Reverse String",
+ "titleSlug": "reverse-string",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "344",
+ "topicTags": "Two Pointers, String"
+ },
+ {
+ "title": "Top K Frequent Elements",
+ "titleSlug": "top-k-frequent-elements",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "347",
+ "topicTags": "Heap, Hash Table"
+ },
+ {
+ "title": "Intersection of Two Arrays",
+ "titleSlug": "intersection-of-two-arrays",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "349",
+ "topicTags": "Sort, Hash Table, Two Pointers, Binary Search"
+ },
+ {
+ "title": "Intersection of Two Arrays II",
+ "titleSlug": "intersection-of-two-arrays-ii",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "350",
+ "topicTags": "Sort, Hash Table, Two Pointers, Binary Search"
+ },
+ {
+ "title": "Sum of Left Leaves",
+ "titleSlug": "sum-of-left-leaves",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "404",
+ "topicTags": "Tree"
+ },
+ {
+ "title": "Find All Anagrams in a String",
+ "titleSlug": "find-all-anagrams-in-a-string",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "438",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Add Two Numbers II",
+ "titleSlug": "add-two-numbers-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "445",
+ "topicTags": "Linked List"
+ },
+ {
+ "title": "Number of Boomerangs",
+ "titleSlug": "number-of-boomerangs",
+ "status": "ac",
+ "difficulty": "Easy",
+ "questionId": "447",
+ "topicTags": "Hash Table"
+ },
+ {
+ "title": "Sort Characters By Frequency",
+ "titleSlug": "sort-characters-by-frequency",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "451",
+ "topicTags": "Heap, Hash Table"
+ },
+ {
+ "title": "4Sum II",
+ "titleSlug": "4sum-ii",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "454",
+ "topicTags": "Hash Table, Binary Search"
+ },
+ {
+ "title": "Permutation in String",
+ "titleSlug": "permutation-in-string",
+ "status": "ac",
+ "difficulty": "Medium",
+ "questionId": "567",
+ "topicTags": "Two Pointers, Sliding Window"
+ }
+]
\ No newline at end of file
diff --git a/packages/leetcode-cli/src/utils.js b/packages/leetcode-cli/src/utils.js
new file mode 100644
index 00000000..490881c3
--- /dev/null
+++ b/packages/leetcode-cli/src/utils.js
@@ -0,0 +1,90 @@
+/* eslint-disable no-plusplus */
+const { promisify } = require('util')
+const homedir = require('os').homedir()
+const fs = require('fs')
+const path = require('path')
+let request = require('request')
+
+const parseCookie = response =>
+ response.headers['set-cookie']
+ .map((x = '') => x.split('; '))
+ .reduce((acc, item) => acc.concat(item))
+ .reduce((acc, item) => {
+ const [key, value] = item.split('=')
+ acc[key] = value
+ return acc
+ }, {})
+
+request = promisify(request)
+request.post = promisify(request.post)
+
+const getHeaders = session => ({
+ 'Content-Type': 'application/json',
+ 'x-csrftoken': session.csrftoken,
+ cookie: `LEETCODE_SESSION=${session.LEETCODE_SESSION};csrftoken=${session.csrftoken};`,
+})
+
+const unicodeToChar = text =>
+ text.replace(/\\u[\dA-F]{4}/gi, match =>
+ String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16))
+ )
+
+const configPath = path.join(homedir, '.crd-leetcode.json')
+const getConfig = () => {
+ try {
+ const config = JSON.parse(fs.readFileSync(configPath))
+ return config
+ } catch (error) {
+ return {
+ country: undefined,
+ cookies: undefined,
+ }
+ }
+}
+const stringify = data => JSON.stringify(data, null, 2)
+
+const setConfig = (payload = {}) => {
+ const config = {
+ ...getConfig(),
+ ...payload,
+ }
+ fs.writeFileSync(configPath, stringify(config))
+}
+
+const removeConfig = (key) => {
+ const config = getConfig()
+ config[key] = undefined
+ fs.writeFileSync(configPath, stringify(config))
+}
+
+const transformToMarkdownTable = (dataArr) => {
+ let result =
+ '| # | Title | Explanation | Difficulty | Type |' +
+ '\n' +
+ '|:---:|:---:|:---:|:---:|:---:|'
+
+ for (let i = 0; i < dataArr.length; i++) {
+ result += `\n| ${dataArr[i].questionId} | [${
+ dataArr[i].title
+ }](https://leetcode.com/problems/${
+ dataArr[i].titleSlug
+ }/) | [Analyze](https://github.com/MuYunyun/blog/blob/main/LeetCode/${
+ dataArr[i].questionId
+ }.${dataArr[i].title.split(' ').join('_')}.md) | ${
+ dataArr[i].difficulty
+ } | ${dataArr[i].topicTags} |`
+ }
+ return result
+}
+
+module.exports = {
+ parseCookie,
+ request,
+ getHeaders,
+ unicodeToChar,
+ getConfig,
+ setConfig,
+ removeConfig,
+ stringify,
+ transformToMarkdownTable,
+}
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
new file mode 100644
index 00000000..75026654
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,12192 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@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.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
+ integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
+ 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/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/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.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==
+ dependencies:
+ "@babel/types" "^7.12.5"
+ 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-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.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
+ integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.10.4"
+ "@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"
+ integrity sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==
+ dependencies:
+ "@babel/types" "7.0.0-beta.44"
+
+"@babel/helper-get-function-arity@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
+ integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==
+ 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-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"
+ integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==
+ dependencies:
+ "@babel/types" "^7.12.1"
+
+"@babel/helper-module-imports@^7.12.1":
+ version "7.12.5"
+ resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
+ integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
+ dependencies:
+ "@babel/types" "^7.12.5"
+
+"@babel/helper-module-transforms@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
+ integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==
+ dependencies:
+ "@babel/helper-module-imports" "^7.12.1"
+ "@babel/helper-replace-supers" "^7.12.1"
+ "@babel/helper-simple-access" "^7.12.1"
+ "@babel/helper-split-export-declaration" "^7.11.0"
+ "@babel/helper-validator-identifier" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.12.1"
+ "@babel/types" "^7.12.1"
+ lodash "^4.17.19"
+
+"@babel/helper-optimise-call-expression@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
+ integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
+"@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-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"
+ integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.12.1"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/traverse" "^7.12.5"
+ "@babel/types" "^7.12.5"
+
+"@babel/helper-simple-access@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136"
+ integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==
+ 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"
+ integrity sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==
+ dependencies:
+ "@babel/types" "7.0.0-beta.44"
+
+"@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==
+ 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/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"
+ integrity sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==
+ dependencies:
+ chalk "^2.0.0"
+ esutils "^2.0.2"
+ js-tokens "^3.0.0"
+
+"@babel/highlight@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
+ integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+"@babel/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.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-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==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^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-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-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"
+ integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@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"
+ integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==
+ dependencies:
+ core-js-pure "^3.0.0"
+ regenerator-runtime "^0.13.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==
+ 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"
+ 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.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
+ integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@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"
+ 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.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==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.12.5"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.11.0"
+ "@babel/parser" "^7.12.5"
+ "@babel/types" "^7.12.5"
+ debug "^4.1.0"
+ 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"
+ integrity sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.2.0"
+ to-fast-properties "^2.0.0"
+
+"@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==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
+ 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"
+
+"@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"
+ integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==
+ 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"
+
+"@evocateur/libnpmaccess@^3.1.2":
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845"
+ integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg==
+ dependencies:
+ "@evocateur/npm-registry-fetch" "^4.0.0"
+ aproba "^2.0.0"
+ figgy-pudding "^3.5.1"
+ get-stream "^4.0.0"
+ npm-package-arg "^6.1.0"
+
+"@evocateur/libnpmpublish@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a"
+ integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg==
+ dependencies:
+ "@evocateur/npm-registry-fetch" "^4.0.0"
+ aproba "^2.0.0"
+ figgy-pudding "^3.5.1"
+ get-stream "^4.0.0"
+ lodash.clonedeep "^4.5.0"
+ normalize-package-data "^2.4.0"
+ npm-package-arg "^6.1.0"
+ semver "^5.5.1"
+ ssri "^6.0.1"
+
+"@evocateur/npm-registry-fetch@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66"
+ integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g==
+ dependencies:
+ JSONStream "^1.3.4"
+ bluebird "^3.5.1"
+ figgy-pudding "^3.4.1"
+ lru-cache "^5.1.1"
+ make-fetch-happen "^5.0.0"
+ npm-package-arg "^6.1.0"
+ safe-buffer "^5.1.2"
+
+"@evocateur/pacote@^9.6.3":
+ version "9.6.5"
+ resolved "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5"
+ integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==
+ dependencies:
+ "@evocateur/npm-registry-fetch" "^4.0.0"
+ bluebird "^3.5.3"
+ cacache "^12.0.3"
+ chownr "^1.1.2"
+ figgy-pudding "^3.5.1"
+ get-stream "^4.1.0"
+ glob "^7.1.4"
+ infer-owner "^1.0.4"
+ lru-cache "^5.1.1"
+ make-fetch-happen "^5.0.0"
+ minimatch "^3.0.4"
+ minipass "^2.3.5"
+ mississippi "^3.0.0"
+ mkdirp "^0.5.1"
+ normalize-package-data "^2.5.0"
+ npm-package-arg "^6.1.0"
+ npm-packlist "^1.4.4"
+ npm-pick-manifest "^3.0.0"
+ osenv "^0.1.5"
+ promise-inflight "^1.0.1"
+ promise-retry "^1.1.1"
+ protoduck "^5.0.1"
+ rimraf "^2.6.3"
+ safe-buffer "^5.2.0"
+ semver "^5.7.0"
+ ssri "^6.0.1"
+ tar "^4.4.10"
+ 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"
+ 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"
+
+"@lerna/add@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b"
+ integrity sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A==
+ dependencies:
+ "@evocateur/pacote" "^9.6.3"
+ "@lerna/bootstrap" "3.21.0"
+ "@lerna/command" "3.21.0"
+ "@lerna/filter-options" "3.20.0"
+ "@lerna/npm-conf" "3.16.0"
+ "@lerna/validation-error" "3.13.0"
+ dedent "^0.7.0"
+ npm-package-arg "^6.1.0"
+ p-map "^2.1.0"
+ semver "^6.2.0"
+
+"@lerna/bootstrap@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz#bcd1b651be5b0970b20d8fae04c864548123aed6"
+ integrity sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw==
+ dependencies:
+ "@lerna/command" "3.21.0"
+ "@lerna/filter-options" "3.20.0"
+ "@lerna/has-npm-version" "3.16.5"
+ "@lerna/npm-install" "3.16.5"
+ "@lerna/package-graph" "3.18.5"
+ "@lerna/pulse-till-done" "3.13.0"
+ "@lerna/rimraf-dir" "3.16.5"
+ "@lerna/run-lifecycle" "3.16.2"
+ "@lerna/run-topologically" "3.18.5"
+ "@lerna/symlink-binary" "3.17.0"
+ "@lerna/symlink-dependencies" "3.17.0"
+ "@lerna/validation-error" "3.13.0"
+ dedent "^0.7.0"
+ get-port "^4.2.0"
+ multimatch "^3.0.0"
+ npm-package-arg "^6.1.0"
+ npmlog "^4.1.2"
+ p-finally "^1.0.0"
+ p-map "^2.1.0"
+ p-map-series "^1.0.0"
+ p-waterfall "^1.0.0"
+ read-package-tree "^5.1.6"
+ semver "^6.2.0"
+
+"@lerna/changed@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz#108e15f679bfe077af500f58248c634f1044ea0b"
+ integrity sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw==
+ dependencies:
+ "@lerna/collect-updates" "3.20.0"
+ "@lerna/command" "3.21.0"
+ "@lerna/listable" "3.18.5"
+ "@lerna/output" "3.13.0"
+
+"@lerna/check-working-tree@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz#b4f8ae61bb4523561dfb9f8f8d874dd46bb44baa"
+ integrity sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==
+ dependencies:
+ "@lerna/collect-uncommitted" "3.16.5"
+ "@lerna/describe-ref" "3.16.5"
+ "@lerna/validation-error" "3.13.0"
+
+"@lerna/child-process@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz#38fa3c18064aa4ac0754ad80114776a7b36a69b2"
+ integrity sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==
+ dependencies:
+ chalk "^2.3.1"
+ execa "^1.0.0"
+ strong-log-transformer "^2.0.0"
+
+"@lerna/clean@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz#c0b46b5300cc3dae2cda3bec14b803082da3856d"
+ integrity sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg==
+ dependencies:
+ "@lerna/command" "3.21.0"
+ "@lerna/filter-options" "3.20.0"
+ "@lerna/prompt" "3.18.5"
+ "@lerna/pulse-till-done" "3.13.0"
+ "@lerna/rimraf-dir" "3.16.5"
+ p-map "^2.1.0"
+ p-map-series "^1.0.0"
+ p-waterfall "^1.0.0"
+
+"@lerna/cli@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz#c90c461542fcd35b6d5b015a290fb0dbfb41d242"
+ integrity sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA==
+ dependencies:
+ "@lerna/global-options" "3.13.0"
+ dedent "^0.7.0"
+ npmlog "^4.1.2"
+ yargs "^14.2.2"
+
+"@lerna/collect-uncommitted@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz#a494d61aac31cdc7aec4bbe52c96550274132e63"
+ integrity sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ chalk "^2.3.1"
+ figgy-pudding "^3.5.1"
+ npmlog "^4.1.2"
+
+"@lerna/collect-updates@3.20.0":
+ version "3.20.0"
+ resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz#62f9d76ba21a25b7d9fbf31c02de88744a564bd1"
+ integrity sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/describe-ref" "3.16.5"
+ minimatch "^3.0.4"
+ npmlog "^4.1.2"
+ slash "^2.0.0"
+
+"@lerna/command@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz#9a2383759dc7b700dacfa8a22b2f3a6e190121f7"
+ integrity sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/package-graph" "3.18.5"
+ "@lerna/project" "3.21.0"
+ "@lerna/validation-error" "3.13.0"
+ "@lerna/write-log-file" "3.13.0"
+ clone-deep "^4.0.1"
+ dedent "^0.7.0"
+ execa "^1.0.0"
+ is-ci "^2.0.0"
+ npmlog "^4.1.2"
+
+"@lerna/conventional-commits@3.22.0":
+ version "3.22.0"
+ resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz#2798f4881ee2ef457bdae027ab7d0bf0af6f1e09"
+ integrity sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA==
+ dependencies:
+ "@lerna/validation-error" "3.13.0"
+ conventional-changelog-angular "^5.0.3"
+ conventional-changelog-core "^3.1.6"
+ conventional-recommended-bump "^5.0.0"
+ fs-extra "^8.1.0"
+ get-stream "^4.0.0"
+ lodash.template "^4.5.0"
+ npm-package-arg "^6.1.0"
+ npmlog "^4.1.2"
+ pify "^4.0.1"
+ semver "^6.2.0"
+
+"@lerna/create-symlink@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967"
+ integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==
+ dependencies:
+ "@zkochan/cmd-shim" "^3.1.0"
+ fs-extra "^8.1.0"
+ npmlog "^4.1.2"
+
+"@lerna/create@3.22.0":
+ version "3.22.0"
+ resolved "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz#d6bbd037c3dc5b425fe5f6d1b817057c278f7619"
+ integrity sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw==
+ dependencies:
+ "@evocateur/pacote" "^9.6.3"
+ "@lerna/child-process" "3.16.5"
+ "@lerna/command" "3.21.0"
+ "@lerna/npm-conf" "3.16.0"
+ "@lerna/validation-error" "3.13.0"
+ camelcase "^5.0.0"
+ dedent "^0.7.0"
+ fs-extra "^8.1.0"
+ globby "^9.2.0"
+ init-package-json "^1.10.3"
+ npm-package-arg "^6.1.0"
+ p-reduce "^1.0.0"
+ pify "^4.0.1"
+ semver "^6.2.0"
+ slash "^2.0.0"
+ validate-npm-package-license "^3.0.3"
+ validate-npm-package-name "^3.0.0"
+ whatwg-url "^7.0.0"
+
+"@lerna/describe-ref@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz#a338c25aaed837d3dc70b8a72c447c5c66346ac0"
+ integrity sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ npmlog "^4.1.2"
+
+"@lerna/diff@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz#e6df0d8b9916167ff5a49fcb02ac06424280a68d"
+ integrity sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/command" "3.21.0"
+ "@lerna/validation-error" "3.13.0"
+ npmlog "^4.1.2"
+
+"@lerna/exec@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz#17f07533893cb918a17b41bcc566dc437016db26"
+ integrity sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/command" "3.21.0"
+ "@lerna/filter-options" "3.20.0"
+ "@lerna/profiler" "3.20.0"
+ "@lerna/run-topologically" "3.18.5"
+ "@lerna/validation-error" "3.13.0"
+ p-map "^2.1.0"
+
+"@lerna/filter-options@3.20.0":
+ version "3.20.0"
+ resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz#0f0f5d5a4783856eece4204708cc902cbc8af59b"
+ integrity sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g==
+ dependencies:
+ "@lerna/collect-updates" "3.20.0"
+ "@lerna/filter-packages" "3.18.0"
+ dedent "^0.7.0"
+ figgy-pudding "^3.5.1"
+ npmlog "^4.1.2"
+
+"@lerna/filter-packages@3.18.0":
+ version "3.18.0"
+ resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz#6a7a376d285208db03a82958cfb8172e179b4e70"
+ integrity sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==
+ dependencies:
+ "@lerna/validation-error" "3.13.0"
+ multimatch "^3.0.0"
+ npmlog "^4.1.2"
+
+"@lerna/get-npm-exec-opts@3.13.0":
+ version "3.13.0"
+ resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz#d1b552cb0088199fc3e7e126f914e39a08df9ea5"
+ integrity sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==
+ dependencies:
+ npmlog "^4.1.2"
+
+"@lerna/get-packed@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff"
+ integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==
+ dependencies:
+ fs-extra "^8.1.0"
+ ssri "^6.0.1"
+ tar "^4.4.8"
+
+"@lerna/github-client@3.22.0":
+ version "3.22.0"
+ resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz#5d816aa4f76747ed736ae64ff962b8f15c354d95"
+ integrity sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@octokit/plugin-enterprise-rest" "^6.0.1"
+ "@octokit/rest" "^16.28.4"
+ git-url-parse "^11.1.2"
+ npmlog "^4.1.2"
+
+"@lerna/gitlab-client@3.15.0":
+ version "3.15.0"
+ resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6"
+ integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==
+ dependencies:
+ node-fetch "^2.5.0"
+ npmlog "^4.1.2"
+ whatwg-url "^7.0.0"
+
+"@lerna/global-options@3.13.0":
+ version "3.13.0"
+ resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1"
+ integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==
+
+"@lerna/has-npm-version@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz#ab83956f211d8923ea6afe9b979b38cc73b15326"
+ integrity sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ semver "^6.2.0"
+
+"@lerna/import@3.22.0":
+ version "3.22.0"
+ resolved "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz#1a5f0394f38e23c4f642a123e5e1517e70d068d2"
+ integrity sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/command" "3.21.0"
+ "@lerna/prompt" "3.18.5"
+ "@lerna/pulse-till-done" "3.13.0"
+ "@lerna/validation-error" "3.13.0"
+ dedent "^0.7.0"
+ fs-extra "^8.1.0"
+ p-map-series "^1.0.0"
+
+"@lerna/info@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz#76696b676fdb0f35d48c83c63c1e32bb5e37814f"
+ integrity sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA==
+ dependencies:
+ "@lerna/command" "3.21.0"
+ "@lerna/output" "3.13.0"
+ envinfo "^7.3.1"
+
+"@lerna/init@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz#1e810934dc8bf4e5386c031041881d3b4096aa5c"
+ integrity sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/command" "3.21.0"
+ fs-extra "^8.1.0"
+ p-map "^2.1.0"
+ write-json-file "^3.2.0"
+
+"@lerna/link@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz#8be68ff0ccee104b174b5bbd606302c2f06e9d9b"
+ integrity sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ==
+ dependencies:
+ "@lerna/command" "3.21.0"
+ "@lerna/package-graph" "3.18.5"
+ "@lerna/symlink-dependencies" "3.17.0"
+ p-map "^2.1.0"
+ slash "^2.0.0"
+
+"@lerna/list@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz#42f76fafa56dea13b691ec8cab13832691d61da2"
+ integrity sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg==
+ dependencies:
+ "@lerna/command" "3.21.0"
+ "@lerna/filter-options" "3.20.0"
+ "@lerna/listable" "3.18.5"
+ "@lerna/output" "3.13.0"
+
+"@lerna/listable@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz#e82798405b5ed8fc51843c8ef1e7a0e497388a1a"
+ integrity sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg==
+ dependencies:
+ "@lerna/query-graph" "3.18.5"
+ chalk "^2.3.1"
+ columnify "^1.5.4"
+
+"@lerna/log-packed@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16"
+ integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==
+ dependencies:
+ byte-size "^5.0.1"
+ columnify "^1.5.4"
+ has-unicode "^2.0.1"
+ npmlog "^4.1.2"
+
+"@lerna/npm-conf@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827"
+ integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==
+ dependencies:
+ config-chain "^1.1.11"
+ pify "^4.0.1"
+
+"@lerna/npm-dist-tag@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz#9ef9abb7c104077b31f6fab22cc73b314d54ac55"
+ integrity sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ==
+ dependencies:
+ "@evocateur/npm-registry-fetch" "^4.0.0"
+ "@lerna/otplease" "3.18.5"
+ figgy-pudding "^3.5.1"
+ npm-package-arg "^6.1.0"
+ npmlog "^4.1.2"
+
+"@lerna/npm-install@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz#d6bfdc16f81285da66515ae47924d6e278d637d3"
+ integrity sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/get-npm-exec-opts" "3.13.0"
+ fs-extra "^8.1.0"
+ npm-package-arg "^6.1.0"
+ npmlog "^4.1.2"
+ signal-exit "^3.0.2"
+ write-pkg "^3.1.0"
+
+"@lerna/npm-publish@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz#240e4039959fd9816b49c5b07421e11b5cb000af"
+ integrity sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg==
+ dependencies:
+ "@evocateur/libnpmpublish" "^1.2.2"
+ "@lerna/otplease" "3.18.5"
+ "@lerna/run-lifecycle" "3.16.2"
+ figgy-pudding "^3.5.1"
+ fs-extra "^8.1.0"
+ npm-package-arg "^6.1.0"
+ npmlog "^4.1.2"
+ pify "^4.0.1"
+ read-package-json "^2.0.13"
+
+"@lerna/npm-run-script@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz#9c2ec82453a26c0b46edc0bb7c15816c821f5c15"
+ integrity sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ "@lerna/get-npm-exec-opts" "3.13.0"
+ npmlog "^4.1.2"
+
+"@lerna/otplease@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz#b77b8e760b40abad9f7658d988f3ea77d4fd0231"
+ integrity sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog==
+ dependencies:
+ "@lerna/prompt" "3.18.5"
+ figgy-pudding "^3.5.1"
+
+"@lerna/output@3.13.0":
+ version "3.13.0"
+ resolved "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz#3ded7cc908b27a9872228a630d950aedae7a4989"
+ integrity sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==
+ dependencies:
+ npmlog "^4.1.2"
+
+"@lerna/pack-directory@3.16.4":
+ version "3.16.4"
+ resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693"
+ integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==
+ dependencies:
+ "@lerna/get-packed" "3.16.0"
+ "@lerna/package" "3.16.0"
+ "@lerna/run-lifecycle" "3.16.2"
+ figgy-pudding "^3.5.1"
+ npm-packlist "^1.4.4"
+ npmlog "^4.1.2"
+ tar "^4.4.10"
+ temp-write "^3.4.0"
+
+"@lerna/package-graph@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz#c740e2ea3578d059e551633e950690831b941f6b"
+ integrity sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA==
+ dependencies:
+ "@lerna/prerelease-id-from-version" "3.16.0"
+ "@lerna/validation-error" "3.13.0"
+ npm-package-arg "^6.1.0"
+ npmlog "^4.1.2"
+ semver "^6.2.0"
+
+"@lerna/package@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c"
+ integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==
+ dependencies:
+ load-json-file "^5.3.0"
+ npm-package-arg "^6.1.0"
+ write-pkg "^3.1.0"
+
+"@lerna/prerelease-id-from-version@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1"
+ integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==
+ dependencies:
+ semver "^6.2.0"
+
+"@lerna/profiler@3.20.0":
+ version "3.20.0"
+ resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz#0f6dc236f4ea8f9ea5f358c6703305a4f32ad051"
+ integrity sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg==
+ dependencies:
+ figgy-pudding "^3.5.1"
+ fs-extra "^8.1.0"
+ npmlog "^4.1.2"
+ upath "^1.2.0"
+
+"@lerna/project@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d"
+ integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A==
+ dependencies:
+ "@lerna/package" "3.16.0"
+ "@lerna/validation-error" "3.13.0"
+ cosmiconfig "^5.1.0"
+ dedent "^0.7.0"
+ dot-prop "^4.2.0"
+ glob-parent "^5.0.0"
+ globby "^9.2.0"
+ load-json-file "^5.3.0"
+ npmlog "^4.1.2"
+ p-map "^2.1.0"
+ resolve-from "^4.0.0"
+ write-json-file "^3.2.0"
+
+"@lerna/prompt@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz#628cd545f225887d060491ab95df899cfc5218a1"
+ integrity sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ==
+ dependencies:
+ inquirer "^6.2.0"
+ npmlog "^4.1.2"
+
+"@lerna/publish@3.22.1":
+ version "3.22.1"
+ resolved "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz#b4f7ce3fba1e9afb28be4a1f3d88222269ba9519"
+ integrity sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw==
+ dependencies:
+ "@evocateur/libnpmaccess" "^3.1.2"
+ "@evocateur/npm-registry-fetch" "^4.0.0"
+ "@evocateur/pacote" "^9.6.3"
+ "@lerna/check-working-tree" "3.16.5"
+ "@lerna/child-process" "3.16.5"
+ "@lerna/collect-updates" "3.20.0"
+ "@lerna/command" "3.21.0"
+ "@lerna/describe-ref" "3.16.5"
+ "@lerna/log-packed" "3.16.0"
+ "@lerna/npm-conf" "3.16.0"
+ "@lerna/npm-dist-tag" "3.18.5"
+ "@lerna/npm-publish" "3.18.5"
+ "@lerna/otplease" "3.18.5"
+ "@lerna/output" "3.13.0"
+ "@lerna/pack-directory" "3.16.4"
+ "@lerna/prerelease-id-from-version" "3.16.0"
+ "@lerna/prompt" "3.18.5"
+ "@lerna/pulse-till-done" "3.13.0"
+ "@lerna/run-lifecycle" "3.16.2"
+ "@lerna/run-topologically" "3.18.5"
+ "@lerna/validation-error" "3.13.0"
+ "@lerna/version" "3.22.1"
+ figgy-pudding "^3.5.1"
+ fs-extra "^8.1.0"
+ npm-package-arg "^6.1.0"
+ npmlog "^4.1.2"
+ p-finally "^1.0.0"
+ p-map "^2.1.0"
+ p-pipe "^1.2.0"
+ semver "^6.2.0"
+
+"@lerna/pulse-till-done@3.13.0":
+ version "3.13.0"
+ resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz#c8e9ce5bafaf10d930a67d7ed0ccb5d958fe0110"
+ integrity sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==
+ dependencies:
+ npmlog "^4.1.2"
+
+"@lerna/query-graph@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz#df4830bb5155273003bf35e8dda1c32d0927bd86"
+ integrity sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA==
+ dependencies:
+ "@lerna/package-graph" "3.18.5"
+ figgy-pudding "^3.5.1"
+
+"@lerna/resolve-symlink@3.16.0":
+ version "3.16.0"
+ resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386"
+ integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==
+ dependencies:
+ fs-extra "^8.1.0"
+ npmlog "^4.1.2"
+ read-cmd-shim "^1.0.1"
+
+"@lerna/rimraf-dir@3.16.5":
+ version "3.16.5"
+ resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz#04316ab5ffd2909657aaf388ea502cb8c2f20a09"
+ integrity sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==
+ dependencies:
+ "@lerna/child-process" "3.16.5"
+ npmlog "^4.1.2"
+ path-exists "^3.0.0"
+ rimraf "^2.6.2"
+
+"@lerna/run-lifecycle@3.16.2":
+ version "3.16.2"
+ resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00"
+ integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==
+ dependencies:
+ "@lerna/npm-conf" "3.16.0"
+ figgy-pudding "^3.5.1"
+ npm-lifecycle "^3.1.2"
+ npmlog "^4.1.2"
+
+"@lerna/run-topologically@3.18.5":
+ version "3.18.5"
+ resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz#3cd639da20e967d7672cb88db0f756b92f2fdfc3"
+ integrity sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg==
+ dependencies:
+ "@lerna/query-graph" "3.18.5"
+ figgy-pudding "^3.5.1"
+ p-queue "^4.0.0"
+
+"@lerna/run@3.21.0":
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz#2a35ec84979e4d6e42474fe148d32e5de1cac891"
+ integrity sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q==
+ dependencies:
+ "@lerna/command" "3.21.0"
+ "@lerna/filter-options" "3.20.0"
+ "@lerna/npm-run-script" "3.16.5"
+ "@lerna/output" "3.13.0"
+ "@lerna/profiler" "3.20.0"
+ "@lerna/run-topologically" "3.18.5"
+ "@lerna/timer" "3.13.0"
+ "@lerna/validation-error" "3.13.0"
+ p-map "^2.1.0"
+
+"@lerna/symlink-binary@3.17.0":
+ version "3.17.0"
+ resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz#8f8031b309863814883d3f009877f82e38aef45a"
+ integrity sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==
+ dependencies:
+ "@lerna/create-symlink" "3.16.2"
+ "@lerna/package" "3.16.0"
+ fs-extra "^8.1.0"
+ p-map "^2.1.0"
+
+"@lerna/symlink-dependencies@3.17.0":
+ version "3.17.0"
+ resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz#48d6360e985865a0e56cd8b51b308a526308784a"
+ integrity sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==
+ dependencies:
+ "@lerna/create-symlink" "3.16.2"
+ "@lerna/resolve-symlink" "3.16.0"
+ "@lerna/symlink-binary" "3.17.0"
+ fs-extra "^8.1.0"
+ p-finally "^1.0.0"
+ p-map "^2.1.0"
+ p-map-series "^1.0.0"
+
+"@lerna/timer@3.13.0":
+ version "3.13.0"
+ resolved "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz#bcd0904551db16e08364d6c18e5e2160fc870781"
+ integrity sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==
+
+"@lerna/validation-error@3.13.0":
+ version "3.13.0"
+ resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3"
+ integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==
+ dependencies:
+ npmlog "^4.1.2"
+
+"@lerna/version@3.22.1":
+ version "3.22.1"
+ resolved "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz#9805a9247a47ee62d6b81bd9fa5fb728b24b59e2"
+ integrity sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g==
+ dependencies:
+ "@lerna/check-working-tree" "3.16.5"
+ "@lerna/child-process" "3.16.5"
+ "@lerna/collect-updates" "3.20.0"
+ "@lerna/command" "3.21.0"
+ "@lerna/conventional-commits" "3.22.0"
+ "@lerna/github-client" "3.22.0"
+ "@lerna/gitlab-client" "3.15.0"
+ "@lerna/output" "3.13.0"
+ "@lerna/prerelease-id-from-version" "3.16.0"
+ "@lerna/prompt" "3.18.5"
+ "@lerna/run-lifecycle" "3.16.2"
+ "@lerna/run-topologically" "3.18.5"
+ "@lerna/validation-error" "3.13.0"
+ chalk "^2.3.1"
+ dedent "^0.7.0"
+ load-json-file "^5.3.0"
+ minimatch "^3.0.4"
+ npmlog "^4.1.2"
+ p-map "^2.1.0"
+ p-pipe "^1.2.0"
+ p-reduce "^1.0.0"
+ p-waterfall "^1.0.0"
+ semver "^6.2.0"
+ slash "^2.0.0"
+ temp-write "^3.4.0"
+ write-json-file "^3.2.0"
+
+"@lerna/write-log-file@3.13.0":
+ version "3.13.0"
+ resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz#b78d9e4cfc1349a8be64d91324c4c8199e822a26"
+ integrity sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==
+ dependencies:
+ 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"
+ 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"
+ integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
+ 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==
+
+"@npmcli/move-file@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464"
+ integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==
+ dependencies:
+ mkdirp "^1.0.4"
+
+"@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"
+
+"@octokit/auth-token@^2.4.0":
+ version "2.4.3"
+ resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.3.tgz#b868b5f2366533a7e62933eaa1181a8924228cc4"
+ integrity sha512-fdGoOQ3kQJh+hrilc0Plg50xSfaCKOeYN9t6dpJKXN9BxhhfquL0OzoQXg3spLYymL5rm29uPeI3KEXRaZQ9zg==
+ dependencies:
+ "@octokit/types" "^5.0.0"
+
+"@octokit/endpoint@^6.0.1":
+ version "6.0.9"
+ resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.9.tgz#c6a772e024202b1bd19ab69f90e0536a2598b13e"
+ integrity sha512-3VPLbcCuqji4IFTclNUtGdp9v7g+nspWdiCUbK3+iPMjJCZ6LEhn1ts626bWLOn0GiDb6j+uqGvPpqLnY7pBgw==
+ dependencies:
+ "@octokit/types" "^5.0.0"
+ is-plain-object "^5.0.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/plugin-enterprise-rest@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437"
+ integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==
+
+"@octokit/plugin-paginate-rest@^1.1.1":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc"
+ integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==
+ dependencies:
+ "@octokit/types" "^2.0.1"
+
+"@octokit/plugin-request-log@^1.0.0":
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44"
+ integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==
+
+"@octokit/plugin-rest-endpoint-methods@2.4.0":
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e"
+ integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==
+ dependencies:
+ "@octokit/types" "^2.0.1"
+ deprecation "^2.3.1"
+
+"@octokit/request-error@^1.0.2":
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801"
+ integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==
+ dependencies:
+ "@octokit/types" "^2.0.0"
+ deprecation "^2.0.0"
+ once "^1.4.0"
+
+"@octokit/request-error@^2.0.0":
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.3.tgz#b51b200052bf483f6fa56c9e7e3aa51ead36ecd8"
+ integrity sha512-GgD5z8Btm301i2zfvJLk/mkhvGCdjQ7wT8xF9ov5noQY8WbKZDH9cOBqXzoeKd1mLr1xH2FwbtGso135zGBgTA==
+ dependencies:
+ "@octokit/types" "^5.0.1"
+ deprecation "^2.0.0"
+ once "^1.4.0"
+
+"@octokit/request@^5.2.0":
+ version "5.4.10"
+ resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.10.tgz#402d2c53768bde12b99348329ba4129746aebb9c"
+ integrity sha512-egA49HkqEORVGDZGav1mh+VD+7uLgOxtn5oODj6guJk0HCy+YBSYapFkSLFgeYj3Fr18ZULKGURkjyhkAChylw==
+ dependencies:
+ "@octokit/endpoint" "^6.0.1"
+ "@octokit/request-error" "^2.0.0"
+ "@octokit/types" "^5.0.0"
+ deprecation "^2.0.0"
+ is-plain-object "^5.0.0"
+ node-fetch "^2.6.1"
+ once "^1.4.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/rest@^16.28.4":
+ version "16.43.2"
+ resolved "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b"
+ integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==
+ dependencies:
+ "@octokit/auth-token" "^2.4.0"
+ "@octokit/plugin-paginate-rest" "^1.1.1"
+ "@octokit/plugin-request-log" "^1.0.0"
+ "@octokit/plugin-rest-endpoint-methods" "2.4.0"
+ "@octokit/request" "^5.2.0"
+ "@octokit/request-error" "^1.0.2"
+ atob-lite "^2.0.0"
+ before-after-hook "^2.0.0"
+ btoa-lite "^1.0.0"
+ deprecation "^2.0.0"
+ 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 "^4.0.0"
+
+"@octokit/types@^2.0.0", "@octokit/types@^2.0.1":
+ version "2.16.2"
+ resolved "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2"
+ integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==
+ dependencies:
+ "@types/node" ">= 8"
+
+"@octokit/types@^5.0.0", "@octokit/types@^5.0.1":
+ version "5.5.0"
+ resolved "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b"
+ integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ==
+ 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"
+ integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==
+
+"@types/debug@^4.1.0":
+ version "4.1.5"
+ resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"
+ integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
+
+"@types/eslint-scope@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86"
+ integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==
+ dependencies:
+ "@types/eslint" "*"
+ "@types/estree" "*"
+
+"@types/eslint@*":
+ version "7.2.6"
+ resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c"
+ integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==
+ dependencies:
+ "@types/estree" "*"
+ "@types/json-schema" "*"
+
+"@types/estree@*", "@types/estree@^0.0.45":
+ version "0.0.45"
+ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884"
+ integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
+
+"@types/glob@^7.1.1":
+ version "7.1.3"
+ resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
+ integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
+ dependencies:
+ "@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"
+ integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==
+
+"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
+ version "7.0.6"
+ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0"
+ integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==
+
+"@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/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"
+ 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"
+ 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@*", "@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/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==
+
+"@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/prop-types@*":
+ version "15.7.4"
+ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
+ integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
+
+"@types/puppeteer@^2.0.0":
+ version "2.1.5"
+ resolved "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-2.1.5.tgz#9137aa87dca21450820bfd6fa4fe747bc8176381"
+ integrity sha512-ZZKAcX5XVEtSK+CLxz6FhofPt8y1D3yDtjGZHDFBZ4bGe8v2aaS6qBDHY4crruvpb4jsO7HKrPEx39IIqsZAUg==
+ dependencies:
+ "@types/node" "*"
+
+"@types/q@^1.5.1":
+ version "1.5.4"
+ resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
+ integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
+
+"@types/react-dom@^17.0.14":
+ version "17.0.14"
+ resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz#c8f917156b652ddf807711f5becbd2ab018dea9f"
+ integrity sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@^17.0.43":
+ version "17.0.43"
+ resolved "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55"
+ integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.2"
+ resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+ integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
+"@types/source-list-map@*":
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
+ integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
+
+"@types/tapable@*", "@types/tapable@^1.0.5":
+ version "1.0.6"
+ 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"
+ integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==
+ 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"
+ integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==
+ dependencies:
+ "@types/node" "*"
+ "@types/source-list-map" "*"
+ source-map "^0.7.3"
+
+"@types/webpack@^4.41.8":
+ version "4.41.25"
+ resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4"
+ integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ==
+ dependencies:
+ "@types/anymatch" "*"
+ "@types/node" "*"
+ "@types/tapable" "*"
+ "@types/uglify-js" "*"
+ "@types/webpack-sources" "*"
+ source-map "^0.6.0"
+
+"@types/yauzl@^2.9.1":
+ version "2.9.1"
+ resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af"
+ integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==
+ dependencies:
+ "@types/node" "*"
+
+"@webassemblyjs/ast@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.1.tgz#76c6937716d68bf1484c15139f5ed30b9abc8bb4"
+ integrity sha512-uMu1nCWn2Wxyy126LlGqRVlhdTOsO/bsBRI4dNq3+6SiSuRKRQX6ejjKgh82LoGAPSq72lDUiQ4FWVaf0PecYw==
+ dependencies:
+ "@webassemblyjs/helper-module-context" "1.9.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.1"
+ "@webassemblyjs/wast-parser" "1.9.1"
+
+"@webassemblyjs/floating-point-hex-parser@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.1.tgz#9eb0ff90a1cdeef51f36ba533ed9f06b5cdadd09"
+ integrity sha512-5VEKu024RySmLKTTBl9q1eO/2K5jk9ZS+2HXDBLA9s9p5IjkaXxWiDb/+b7wSQp6FRdLaH1IVGIfOex58Na2pg==
+
+"@webassemblyjs/helper-api-error@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.1.tgz#ad89015c4246cd7f5ed0556700237f8b9c2c752f"
+ integrity sha512-y1lGmfm38djrScwpeL37rRR9f1D6sM8RhMpvM7CYLzOlHVboouZokXK/G88BpzW0NQBSvCCOnW5BFhten4FPfA==
+
+"@webassemblyjs/helper-buffer@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.1.tgz#186e67ac25f9546ea7939759413987f157524133"
+ integrity sha512-uS6VSgieHbk/m4GSkMU5cqe/5TekdCzQso4revCIEQ3vpGZgqSSExi4jWpTWwDpAHOIAb1Jfrs0gUB9AA4n71w==
+
+"@webassemblyjs/helper-code-frame@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.1.tgz#aab177b7cc87a318a8f8664ad68e2c3828ebc42b"
+ integrity sha512-ZQ2ZT6Evk4DPIfD+92AraGYaFIqGm4U20e7FpXwl7WUo2Pn1mZ1v8VGH8i+Y++IQpxPbQo/UyG0Khs7eInskzA==
+ dependencies:
+ "@webassemblyjs/wast-printer" "1.9.1"
+
+"@webassemblyjs/helper-fsm@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.1.tgz#527e91628e84d13d3573884b3dc4c53a81dcb911"
+ integrity sha512-J32HGpveEqqcKFS0YbgicB0zAlpfIxJa5MjxDxhu3i5ltPcVfY5EPvKQ1suRguFPehxiUs+/hfkwPEXom/l0lw==
+
+"@webassemblyjs/helper-module-context@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.1.tgz#778670b3d471f7cf093d1e7c0dde431b54310e16"
+ integrity sha512-IEH2cMmEQKt7fqelLWB5e/cMdZXf2rST1JIrzWmf4XBt3QTxGdnnLvV4DYoN8pJjOx0VYXsWg+yF16MmJtolZg==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+
+"@webassemblyjs/helper-wasm-bytecode@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.1.tgz#563f59bcf409ccf469edde168b9426961ffbf6df"
+ integrity sha512-i2rGTBqFUcSXxyjt2K4vm/3kkHwyzG6o427iCjcIKjOqpWH8SEem+xe82jUk1iydJO250/CvE5o7hzNAMZf0dQ==
+
+"@webassemblyjs/helper-wasm-section@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.1.tgz#f7988f94c12b01b99a16120cb01dc099b00e4798"
+ integrity sha512-FetqzjtXZr2d57IECK+aId3D0IcGweeM0CbAnJHkYJkcRTHP+YcMb7Wmc0j21h5UWBpwYGb9dSkK/93SRCTrGg==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/helper-buffer" "1.9.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.1"
+ "@webassemblyjs/wasm-gen" "1.9.1"
+
+"@webassemblyjs/ieee754@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.1.tgz#3b715871ca7d75784717cf9ceca9d7b81374b8af"
+ integrity sha512-EvTG9M78zP1MmkBpUjGQHZc26DzPGZSLIPxYHCjQsBMo60Qy2W34qf8z0exRDtxBbRIoiKa5dFyWer/7r1aaSQ==
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.1.tgz#b2ecaa39f9e8277cc9c707c1ca8b2aa7b27d0b72"
+ integrity sha512-Oc04ub0vFfLnF+2/+ki3AE+anmW4sv9uNBqb+79fgTaPv6xJsOT0dhphNfL3FrME84CbX/D1T9XT8tjFo0IIiw==
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.1.tgz#d02d9daab85cda3211e43caf31dca74c260a73b0"
+ integrity sha512-llkYtppagjCodFjo0alWOUhAkfOiQPQDIc5oA6C9sFAXz7vC9QhZf/f8ijQIX+A9ToM3c9Pq85X0EX7nx9gVhg==
+
+"@webassemblyjs/wasm-edit@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.1.tgz#e27a6bdbf78e5c72fa812a2fc3cbaad7c3e37578"
+ integrity sha512-S2IaD6+x9B2Xi8BCT0eGsrXXd8UxAh2LVJpg1ZMtHXnrDcsTtIX2bDjHi40Hio6Lc62dWHmKdvksI+MClCYbbw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/helper-buffer" "1.9.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.1"
+ "@webassemblyjs/helper-wasm-section" "1.9.1"
+ "@webassemblyjs/wasm-gen" "1.9.1"
+ "@webassemblyjs/wasm-opt" "1.9.1"
+ "@webassemblyjs/wasm-parser" "1.9.1"
+ "@webassemblyjs/wast-printer" "1.9.1"
+
+"@webassemblyjs/wasm-gen@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.1.tgz#56a0787d1fa7994fdc7bea59004e5bec7189c5fc"
+ integrity sha512-bqWI0S4lBQsEN5FTZ35vYzfKUJvtjNnBobB1agCALH30xNk1LToZ7Z8eiaR/Z5iVECTlBndoRQV3F6mbEqE/fg==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.1"
+ "@webassemblyjs/ieee754" "1.9.1"
+ "@webassemblyjs/leb128" "1.9.1"
+ "@webassemblyjs/utf8" "1.9.1"
+
+"@webassemblyjs/wasm-opt@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.1.tgz#fbdf8943a825e6dcc4cd69c3e092289fa4aec96c"
+ integrity sha512-gSf7I7YWVXZ5c6XqTEqkZjVs8K1kc1k57vsB6KBQscSagDNbAdxt6MwuJoMjsE1yWY1tsuL+pga268A6u+Fdkg==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/helper-buffer" "1.9.1"
+ "@webassemblyjs/wasm-gen" "1.9.1"
+ "@webassemblyjs/wasm-parser" "1.9.1"
+
+"@webassemblyjs/wasm-parser@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.1.tgz#5e8352a246d3f605312c8e414f7990de55aaedfa"
+ integrity sha512-ImM4N2T1MEIond0MyE3rXvStVxEmivQrDKf/ggfh5pP6EHu3lL/YTAoSrR7shrbKNPpeKpGesW1LIK/L4kqduw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/helper-api-error" "1.9.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.1"
+ "@webassemblyjs/ieee754" "1.9.1"
+ "@webassemblyjs/leb128" "1.9.1"
+ "@webassemblyjs/utf8" "1.9.1"
+
+"@webassemblyjs/wast-parser@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.1.tgz#e25ef13585c060073c1db0d6bd94340fdeee7596"
+ integrity sha512-2xVxejXSvj3ls/o2TR/zI6p28qsGupjHhnHL6URULQRcXmryn3w7G83jQMcT7PHqUfyle65fZtWLukfdLdE7qw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/floating-point-hex-parser" "1.9.1"
+ "@webassemblyjs/helper-api-error" "1.9.1"
+ "@webassemblyjs/helper-code-frame" "1.9.1"
+ "@webassemblyjs/helper-fsm" "1.9.1"
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/wast-printer@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.1.tgz#b9f38e93652037d4f3f9c91584635af4191ed7c1"
+ integrity sha512-tDV8V15wm7mmbAH6XvQRU1X+oPGmeOzYsd6h7hlRLz6QpV4Ec/KKxM8OpLtFmQPLCreGxTp+HuxtH4pRIZyL9w==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/wast-parser" "1.9.1"
+ "@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==
+
+"@zkochan/cmd-shim@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e"
+ integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg==
+ dependencies:
+ is-windows "^1.0.0"
+ mkdirp-promise "^5.0.1"
+ mz "^2.5.0"
+
+JSONStream@^1.0.4, JSONStream@^1.3.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"
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
+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@^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-jsx@^5.2.0:
+ 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@^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@^7.4.0:
+ version "7.4.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+acorn@^8.0.4:
+ version "8.0.4"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354"
+ integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==
+
+address@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
+ integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==
+
+agent-base@4, agent-base@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
+ integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
+ dependencies:
+ es6-promisify "^5.0.0"
+
+agent-base@5:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
+ integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==
+
+agent-base@~4.2.1:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
+ integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==
+ dependencies:
+ es6-promisify "^5.0.0"
+
+agentkeepalive@^3.4.1:
+ version "3.5.2"
+ resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67"
+ integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==
+ dependencies:
+ humanize-ms "^1.2.1"
+
+aggregate-error@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
+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@^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.5.2:
+ version "3.5.2"
+ resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.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.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
+ 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"
+
+alphanum-sort@^1.0.0, 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@^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-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, 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"
+
+any-promise@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+ integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
+
+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"
+
+aproba@^1.0.3, aproba@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+aproba@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
+ integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
+
+are-we-there-yet@~1.1.2:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^2.0.6"
+
+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"
+
+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"
+ 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-differ@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1"
+ integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==
+
+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"
+ 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-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:
+ 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=
+
+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"
+
+array.prototype.flatmap@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443"
+ integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+ function-bind "^1.1.1"
+
+arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+ integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
+
+asap@^2.0.0:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
+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=
+
+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=
+
+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@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+
+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.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==
+ 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-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"
+ 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.11.0"
+ resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
+ integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
+
+axe-core@^4.0.2:
+ version "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@^1.6.2:
+ version "1.6.2"
+ resolved "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2"
+ integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==
+ dependencies:
+ follow-redirects "^1.15.0"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
+axobject-query@^2.2.0:
+ 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:
+ 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-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-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"
+ 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.3.1:
+ 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"
+
+before-after-hook@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635"
+ integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
+
+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==
+
+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"
+
+bl@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489"
+ integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
+bluebird@^3.5.1, bluebird@^3.5.3, 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==
+
+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, 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"
+
+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.0.0:
+ version "4.16.1"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766"
+ integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==
+ dependencies:
+ caniuse-lite "^1.0.30001173"
+ colorette "^1.2.1"
+ electron-to-chromium "^1.3.634"
+ escalade "^3.1.1"
+ node-releases "^1.1.69"
+
+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==
+ dependencies:
+ caniuse-lite "^1.0.30001154"
+ electron-to-chromium "^1.3.585"
+ escalade "^3.1.1"
+ node-releases "^1.1.65"
+
+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-crc32@~0.2.3:
+ version "0.2.13"
+ resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+ integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+
+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@^5.2.1, buffer@^5.5.0:
+ version "5.7.1"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
+builtins@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
+ integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og=
+
+byline@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
+ integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
+
+byte-size@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191"
+ integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==
+
+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.0, cacache@^12.0.3:
+ 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"
+
+cacache@^15.0.5:
+ version "15.0.5"
+ resolved "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0"
+ integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==
+ dependencies:
+ "@npmcli/move-file" "^1.0.1"
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ glob "^7.1.4"
+ infer-owner "^1.0.4"
+ lru-cache "^6.0.0"
+ minipass "^3.1.1"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.2"
+ mkdirp "^1.0.3"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^8.0.0"
+ tar "^6.0.2"
+ unique-filename "^1.1.1"
+
+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"
+
+call-bind@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce"
+ integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.0"
+
+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"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ 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"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ 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.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"
+ integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
+ dependencies:
+ 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"
+ 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.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:
+ 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-api@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+ integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-lite "^1.0.0"
+ 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.30001156"
+ 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.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"
+ 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.0.1, chalk@^2.1.0, chalk@^2.3.1, 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, 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==
+ 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==
+
+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"
+ 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"
+
+chownr@^1.1.1, chownr@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+chownr@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
+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==
+
+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==
+
+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"
+ 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.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==
+ dependencies:
+ source-map "~0.6.0"
+
+clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+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-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
+
+cli-spinners@^2.0.0, cli-spinners@^2.2.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-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==
+
+cli-width@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
+ integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+
+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-deep@^0.2.4:
+ version "0.2.4"
+ resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6"
+ integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=
+ dependencies:
+ for-own "^0.1.3"
+ is-plain-object "^2.0.1"
+ kind-of "^3.0.2"
+ lazy-cache "^1.0.3"
+ shallow-clone "^0.1.2"
+
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+
+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@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+ integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
+ dependencies:
+ "@types/q" "^1.5.1"
+ chalk "^2.4.1"
+ q "^1.1.2"
+
+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"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+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, color-convert@^1.9.1:
+ 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-string@^1.5.4:
+ version "1.5.4"
+ resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6"
+ integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+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"
+
+color@^3.0.0:
+ version "3.1.3"
+ resolved "https://registry.npmjs.org/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
+ integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==
+ dependencies:
+ color-convert "^1.9.1"
+ color-string "^1.5.4"
+
+colorette@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
+ integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
+
+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=
+
+columnify@^1.5.4:
+ version "1.5.4"
+ resolved "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb"
+ integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=
+ dependencies:
+ strip-ansi "^3.0.0"
+ wcwidth "^1.0.0"
+
+combined-stream@^1.0.6, combined-stream@^1.0.8, 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"
+
+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"
+ integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
+
+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==
+
+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==
+
+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"
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+
+compare-func@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3"
+ integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==
+ dependencies:
+ array-ify "^1.0.0"
+ dot-prop "^5.1.0"
+
+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, 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==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ 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"
+
+config-chain@^1.1.11:
+ version "1.1.12"
+ resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
+ integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
+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.15.0"
+ resolved "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz#40fc4eefa4d2f8ef2e2806147f056ea207fcc0e9"
+ integrity sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==
+
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+ integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+
+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"
+ 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==
+
+conventional-changelog-angular@^5.0.3:
+ version "5.0.12"
+ resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9"
+ integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==
+ dependencies:
+ compare-func "^2.0.0"
+ q "^1.5.1"
+
+conventional-changelog-core@^3.1.6:
+ 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-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.18"
+ resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.18.tgz#10b73baa59c7befc69b360562f8b9cd19e63daf8"
+ integrity sha512-mAQDCKyB9HsE8Ko5cCM1Jn1AWxXPYV0v8dFPabZRkvsiWUul2YyAqbIaoMKF88Zf2ffnOPSvKhboLf3fnjo5/A==
+ dependencies:
+ compare-func "^2.0.0"
+ conventional-commits-filter "^2.0.7"
+ dateformat "^3.0.0"
+ handlebars "^4.7.6"
+ json-stringify-safe "^5.0.1"
+ lodash "^4.17.15"
+ meow "^8.0.0"
+ semver "^6.0.0"
+ split "^1.0.0"
+ through2 "^4.0.0"
+
+conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3"
+ integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==
+ dependencies:
+ lodash.ismatch "^4.4.0"
+ modify-values "^1.0.0"
+
+conventional-commits-parser@^3.0.3:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.0.tgz#9e261b139ca4b7b29bcebbc54460da36894004ca"
+ integrity sha512-XmJiXPxsF0JhAKyfA2Nn+rZwYKJ60nanlbSWwwkGwLQFbugsc0gv1rzc7VbbUWAzJfR1qR87/pNgv9NgmxtBMQ==
+ dependencies:
+ JSONStream "^1.0.4"
+ is-text-path "^1.0.1"
+ lodash "^4.17.15"
+ meow "^8.0.0"
+ split2 "^2.0.0"
+ through2 "^4.0.0"
+ trim-off-newlines "^1.0.0"
+
+conventional-recommended-bump@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba"
+ integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==
+ dependencies:
+ concat-stream "^2.0.0"
+ conventional-changelog-preset-loader "^2.1.1"
+ conventional-commits-filter "^2.0.2"
+ conventional-commits-parser "^3.0.3"
+ git-raw-commits "2.0.0"
+ git-semver-tags "^2.0.3"
+ meow "^4.0.0"
+ q "^1.5.1"
+
+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-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-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, cosmiconfig@^5.1.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-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"
+ html-minifier "^4.0.0"
+
+cross-fetch@2.2.2:
+ version "2.2.2"
+ resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723"
+ integrity sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=
+ dependencies:
+ node-fetch "2.1.2"
+ whatwg-fetch "2.0.4"
+
+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"
+ 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"
+
+css-color-names@0.0.4, 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-declaration-sorter@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
+ integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
+ dependencies:
+ postcss "^7.0.1"
+ timsort "^0.3.0"
+
+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-minimizer-webpack-plugin@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-1.2.0.tgz#3e9d75f6bcc16f1eb84d56ebfee124d1e1f2e1c5"
+ integrity sha512-XU4+PXw7QKAlRGU+fB386YiczAAPtk0kVsB/Qf2nX8GJaOXgTsk/PST8YBExeoD299wheG//MCCKlCD5fykb7Q==
+ dependencies:
+ cacache "^15.0.5"
+ cssnano "^4.1.10"
+ find-cache-dir "^3.3.1"
+ jest-worker "^26.3.0"
+ p-limit "^3.0.2"
+ schema-utils "^3.0.0"
+ serialize-javascript "^5.0.1"
+ source-map "^0.6.1"
+ webpack-sources "^1.4.3"
+
+css-select-base-adapter@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+ integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
+
+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-select@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+ integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^3.2.1"
+ domutils "^1.7.0"
+ nth-check "^1.0.2"
+
+css-selector-tokenizer@^0.7.0:
+ version "0.7.3"
+ resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1"
+ integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==
+ dependencies:
+ cssesc "^3.0.0"
+ fastparse "^1.1.2"
+
+css-tree@1.0.0-alpha.37:
+ version "1.0.0-alpha.37"
+ resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
+ integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
+ dependencies:
+ mdn-data "2.0.4"
+ source-map "^0.6.1"
+
+css-tree@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5"
+ integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
+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==
+
+css-what@^3.2.1:
+ version "3.4.2"
+ resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
+ integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
+
+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-preset-default@^4.0.7:
+ version "4.0.7"
+ resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
+ integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
+ dependencies:
+ css-declaration-sorter "^4.0.1"
+ cssnano-util-raw-cache "^4.0.1"
+ postcss "^7.0.0"
+ postcss-calc "^7.0.1"
+ postcss-colormin "^4.0.3"
+ postcss-convert-values "^4.0.1"
+ postcss-discard-comments "^4.0.2"
+ postcss-discard-duplicates "^4.0.2"
+ postcss-discard-empty "^4.0.1"
+ postcss-discard-overridden "^4.0.1"
+ postcss-merge-longhand "^4.0.11"
+ postcss-merge-rules "^4.0.3"
+ postcss-minify-font-values "^4.0.2"
+ postcss-minify-gradients "^4.0.2"
+ postcss-minify-params "^4.0.2"
+ postcss-minify-selectors "^4.0.2"
+ postcss-normalize-charset "^4.0.1"
+ postcss-normalize-display-values "^4.0.2"
+ postcss-normalize-positions "^4.0.2"
+ postcss-normalize-repeat-style "^4.0.2"
+ postcss-normalize-string "^4.0.2"
+ postcss-normalize-timing-functions "^4.0.2"
+ postcss-normalize-unicode "^4.0.1"
+ postcss-normalize-url "^4.0.1"
+ postcss-normalize-whitespace "^4.0.2"
+ postcss-ordered-values "^4.1.2"
+ postcss-reduce-initial "^4.0.3"
+ postcss-reduce-transforms "^4.0.2"
+ postcss-svgo "^4.0.2"
+ postcss-unique-selectors "^4.0.1"
+
+cssnano-util-get-arguments@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
+ integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
+
+cssnano-util-get-match@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
+ integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
+
+cssnano-util-raw-cache@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
+ integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
+ dependencies:
+ postcss "^7.0.0"
+
+cssnano-util-same-parent@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
+ integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
+
+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"
+
+cssnano@^4.1.10:
+ version "4.1.10"
+ resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
+ integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
+ dependencies:
+ cosmiconfig "^5.0.0"
+ cssnano-preset-default "^4.0.7"
+ is-resolvable "^1.0.0"
+ postcss "^7.0.0"
+
+csso@^4.0.2:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
+ integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
+ dependencies:
+ css-tree "^1.1.2"
+
+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"
+
+csstype@^3.0.2:
+ version "3.0.11"
+ resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33"
+ integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
+
+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"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+ 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:
+ 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.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
+ integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
+ dependencies:
+ ms "2.1.2"
+
+debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
+ 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"
+
+debuglog@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
+ integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
+
+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=
+ dependencies:
+ decamelize "^1.1.0"
+ map-obj "^1.0.0"
+
+decamelize@^1.1.0, 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=
+
+dedent@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+ integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+
+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, 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@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
+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"
+
+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"
+
+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=
+
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+deprecation@^2.0.0, deprecation@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
+ integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
+
+destroy@~1.0.4:
+ version "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"
+ 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"
+ 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"
+
+devtools-protocol@0.0.809251:
+ version "0.0.809251"
+ resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.809251.tgz#300b3366be107d5c46114ecb85274173e3999518"
+ integrity sha512-pf+2OY6ghMDPjKkzSWxHMq+McD+9Ojmq5XVRYpv/kPd9sTMQxzEt21592a31API8qRjro0iYYOc3ag46qF/1FA==
+
+dezalgo@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456"
+ integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=
+ dependencies:
+ asap "^2.0.0"
+ wrappy "1"
+
+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==
+
+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"
+
+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@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==
+ dependencies:
+ esutils "^2.0.2"
+
+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==
+
+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.2"
+ resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971"
+ integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==
+
+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, domutils@^1.7.0:
+ 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"
+
+dot-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+ integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+
+dot-prop@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4"
+ integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==
+ dependencies:
+ is-obj "^1.0.0"
+
+dot-prop@^5.1.0, dot-prop@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+ integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+ dependencies:
+ is-obj "^2.0.0"
+
+duplexer@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+ integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+
+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, electron-to-chromium@^1.3.585:
+ version "1.3.591"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz#a18892bf1acb93f7b6e4da402705d564bc235017"
+ integrity sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw==
+
+electron-to-chromium@^1.3.634:
+ version "1.3.635"
+ 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"
+ 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==
+
+emoji-regex@^9.0.0:
+ version "9.2.0"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.0.tgz#a26da8e832b16a9753309f25e35e3c0efb9a066a"
+ integrity sha512-DNc3KFPK18bPdElMJnf/Pkv5TXhxFU3YFDEuGLDRtPmV4rkmCjBkCSEp22u6rBHdSN9Vlp/GK7k98prmE1Jgug==
+
+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=
+
+encoding@^0.1.11:
+ version "0.1.13"
+ resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
+ dependencies:
+ iconv-lite "^0.6.2"
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
+ 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@^5.3.1:
+ version "5.4.1"
+ resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.4.1.tgz#c89b0c34f17f931902ef2913a125d4b825b49b6f"
+ integrity sha512-4GbyIMzYktTFoRSmkbgZ1LU+RXwf4AQ8Z+rSuuh1dC8plp0PPeaWvx6+G4hh4KnUJ48VoxKbNyA1QQQIUpXjYA==
+ dependencies:
+ graceful-fs "^4.2.4"
+ tapable "^2.2.0"
+
+enquirer@^2.3.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.1.0"
+ resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
+ integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
+
+env-paths@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43"
+ integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==
+
+envinfo@^7.3.1:
+ version "7.7.3"
+ resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc"
+ integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==
+
+err-code@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960"
+ integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=
+
+errno@^0.1.1, errno@^0.1.3:
+ 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.2.0, 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, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5:
+ version "1.17.7"
+ resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c"
+ integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==
+ dependencies:
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+ is-callable "^1.2.2"
+ is-regex "^1.1.1"
+ object-inspect "^1.8.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.1"
+ string.prototype.trimend "^1.0.1"
+ string.prototype.trimstart "^1.0.1"
+
+es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1:
+ version "1.18.0-next.1"
+ resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68"
+ integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==
+ dependencies:
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+ is-callable "^1.2.2"
+ is-negative-zero "^2.0.0"
+ is-regex "^1.1.1"
+ object-inspect "^1.8.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.1"
+ string.prototype.trimend "^1.0.1"
+ string.prototype.trimstart "^1.0.1"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.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"
+
+es6-promise@^4.0.3:
+ version "4.2.8"
+ resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
+ integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
+
+es6-promisify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
+ integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
+ 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"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+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-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.4:
+ 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@^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-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.22.1"
+ resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702"
+ integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==
+ 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.4"
+ 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.4.1"
+ resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd"
+ integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==
+ dependencies:
+ "@babel/runtime" "^7.11.2"
+ aria-query "^4.2.2"
+ array-includes "^3.1.1"
+ ast-types-flow "^0.0.7"
+ axe-core "^4.0.2"
+ axobject-query "^2.2.0"
+ damerau-levenshtein "^1.0.6"
+ emoji-regex "^9.0.0"
+ has "^1.0.3"
+ jsx-ast-utils "^3.1.0"
+ language-tags "^1.0.5"
+
+eslint-plugin-react@^7.7.0:
+ version "7.21.5"
+ resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz#50b21a412b9574bfe05b21db176e8b7b3b15bff3"
+ integrity sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==
+ dependencies:
+ array-includes "^3.1.1"
+ array.prototype.flatmap "^1.2.3"
+ doctrine "^2.1.0"
+ has "^1.0.3"
+ jsx-ast-utils "^2.4.1 || ^3.0.0"
+ object.entries "^1.1.2"
+ object.fromentries "^2.0.2"
+ object.values "^1.1.1"
+ prop-types "^15.7.2"
+ resolve "^1.18.1"
+ string.prototype.matchall "^4.0.2"
+
+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=
+
+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@^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@^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, 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@^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==
+ 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"
+ esutils "^2.0.2"
+ file-entry-cache "^2.0.0"
+ functional-red-black-tree "^1.0.1"
+ glob "^7.1.2"
+ globals "^11.0.1"
+ ignore "^3.3.3"
+ imurmurhash "^0.1.4"
+ inquirer "^3.0.6"
+ is-resolvable "^1.0.0"
+ js-yaml "^3.9.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"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ path-is-inside "^1.0.2"
+ pluralize "^7.0.0"
+ 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"
+
+eslint@^7.11.0:
+ version "7.13.0"
+ resolved "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz#7f180126c0dcdef327bfb54b211d7802decc08da"
+ integrity sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@eslint/eslintrc" "^0.2.1"
+ 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.0"
+ esquery "^1.2.0"
+ esutils "^2.0.2"
+ file-entry-cache "^5.0.1"
+ 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 "^5.2.3"
+ 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==
+ dependencies:
+ acorn "^5.5.0"
+ acorn-jsx "^3.0.0"
+
+espree@^7.3.0:
+ version "7.3.0"
+ resolved "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348"
+ integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==
+ dependencies:
+ acorn "^7.4.0"
+ acorn-jsx "^5.2.0"
+ 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.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==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^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.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, 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@^3.1.0:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
+ integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
+
+eventemitter3@^4.0.0:
+ version "4.0.7"
+ resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+
+events@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
+ integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
+
+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"
+
+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.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==
+ 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==
+
+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"
+ 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"
+
+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"
+ integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+ dependencies:
+ debug "^4.1.1"
+ get-stream "^5.1.0"
+ yauzl "^2.10.0"
+ optionalDependencies:
+ "@types/yauzl" "^2.9.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.3"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+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:
+ 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.3, 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"
+
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+ integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
+ dependencies:
+ pend "~1.2.0"
+
+figgy-pudding@^3.4.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@^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"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ 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=
+ dependencies:
+ flat-cache "^1.2.1"
+ object-assign "^4.0.1"
+
+file-entry-cache@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
+ integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
+ dependencies:
+ flat-cache "^2.0.1"
+
+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"
+
+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@^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@^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=
+ dependencies:
+ locate-path "^2.0.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, find-up@^4.1.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"
+
+find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.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==
+ dependencies:
+ circular-json "^0.3.1"
+ graceful-fs "^4.1.2"
+ rimraf "~2.6.2"
+ write "^0.2.1"
+
+flat-cache@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
+ integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
+ dependencies:
+ flatted "^2.0.0"
+ rimraf "2.6.3"
+ write "1.0.3"
+
+flatted@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+
+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, follow-redirects@^1.15.0:
+ version "1.15.3"
+ resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a"
+ integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==
+
+for-in@^0.1.3:
+ version "0.1.8"
+ resolved "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
+ integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=
+
+for-in@^1.0.1, 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=
+
+for-own@^0.1.3:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
+ dependencies:
+ for-in "^1.0.1"
+
+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@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+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-constants@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+ integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+
+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-minipass@^1.2.5:
+ version "1.2.7"
+ resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
+ integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
+ dependencies:
+ minipass "^2.6.0"
+
+fs-minipass@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+ integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+ dependencies:
+ minipass "^3.0.0"
+
+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"
+
+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=
+
+gauge@~2.7.3:
+ version "2.7.4"
+ resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+ dependencies:
+ aproba "^1.0.3"
+ console-control-strings "^1.0.0"
+ has-unicode "^2.0.0"
+ object-assign "^4.1.0"
+ signal-exit "^3.0.0"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wide-align "^1.1.0"
+
+genfun@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537"
+ integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==
+
+gensync@^1.0.0-beta.1:
+ version "1.0.0-beta.2"
+ resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+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-intrinsic@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be"
+ integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
+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-port@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119"
+ integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==
+
+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@^4.0.0, get-stream@^4.1.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.2.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ 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"
+
+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"
+
+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"
+ 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.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.2"
+ resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c"
+ integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==
+ dependencies:
+ is-ssh "^1.3.0"
+ parse-url "^5.0.0"
+
+git-url-parse@^11.1.2:
+ version "11.4.0"
+ resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.4.0.tgz#f2bb1f2b00f05552540e95a62e31399a639a6aa6"
+ integrity sha512-KlIa5jvMYLjXMQXkqpFzobsyD/V2K5DRHl5OAf+6oDFPlPLxrGDVQlIdI63c4/Kt6kai4kALENSALlzTGST3GQ==
+ 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"
+ integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
+ dependencies:
+ is-glob "^3.1.0"
+ path-dirname "^1.0.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==
+ 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-to-regexp@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+ integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, 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.0.1, 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"
+
+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==
+ 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"
+
+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, graceful-fs@^4.2.2, graceful-fs@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+
+graphql-request@^1.8.2:
+ version "1.8.2"
+ resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe"
+ integrity sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==
+ dependencies:
+ cross-fetch "2.2.2"
+
+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==
+
+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"
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
+
+har-validator@~5.1.3:
+ version "5.1.5"
+ resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
+ dependencies:
+ ajv "^6.12.3"
+ 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"
+ 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.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-unicode@^2.0.0, has-unicode@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+
+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.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"
+
+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-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"
+ 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"
+
+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"
+ 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"
+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+hex-color-regex@^1.1.0:
+ version "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@^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.7.6"
+
+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"
+
+hosted-git-info@^2.1.4, hosted-git-info@^2.7.1:
+ version "2.8.8"
+ resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+ integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
+
+hosted-git-info@^3.0.6:
+ version "3.0.7"
+ resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c"
+ integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==
+ dependencies:
+ lru-cache "^6.0.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"
+
+hsl-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
+ integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
+
+hsla-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
+ integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
+
+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-terser@^5.0.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
+ integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==
+ dependencies:
+ camel-case "^4.1.1"
+ clean-css "^4.2.3"
+ commander "^4.1.1"
+ he "^1.2.0"
+ param-case "^3.0.3"
+ 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-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"
+ integrity sha512-yzK7RQZwv9xB+pcdHNTjcqbaaDZ+5L0zJHXfi89iWIZmb/FtzxhLk0635rmJihcQbs3ZUF27Xp4oWGx6EK56zg==
+ dependencies:
+ "@types/html-minifier-terser" "^5.0.0"
+ "@types/tapable" "^1.0.5"
+ "@types/webpack" "^4.41.8"
+ html-minifier-terser "^5.0.1"
+ loader-utils "^1.2.3"
+ lodash "^4.17.20"
+ pretty-error "^2.1.1"
+ tapable "^1.1.3"
+ 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-cache-semantics@^3.8.1:
+ version "3.8.1"
+ resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
+ integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==
+
+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-agent@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
+ integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
+ dependencies:
+ agent-base "4"
+ debug "3.1.0"
+
+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-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:
+ 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-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==
+ dependencies:
+ agent-base "^4.3.0"
+ debug "^3.1.0"
+
+https-proxy-agent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b"
+ integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==
+ dependencies:
+ agent-base "5"
+ debug "4"
+
+humanize-ms@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
+ integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=
+ dependencies:
+ ms "^2.0.0"
+
+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, iconv-lite@^0.4.17, 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"
+
+iconv-lite@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
+ integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+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.13:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+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-walk@^3.0.1:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
+ integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
+ dependencies:
+ minimatch "^3.0.4"
+
+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==
+
+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.2.2"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
+ integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==
+ 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=
+
+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"
+ integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
+
+infer-owner@^1.0.3, infer-owner@^1.0.4:
+ 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.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.3:
+ version "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:
+ 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"
+ resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe"
+ integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==
+ dependencies:
+ glob "^7.1.1"
+ npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0"
+ promzard "^0.3.0"
+ read "~1.0.1"
+ read-package-json "1 || 2"
+ semver "2.x || 3.x || 4 || 5"
+ 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"
+ 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"
+
+inquirer@^6.2.0:
+ version "6.5.2"
+ resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
+ integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
+ 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.12"
+ 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@^7.3.3:
+ version "7.3.3"
+ resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
+ integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-width "^3.0.0"
+ external-editor "^3.0.3"
+ figures "^3.0.0"
+ lodash "^4.17.19"
+ mute-stream "0.0.8"
+ run-async "^2.4.0"
+ rxjs "^6.6.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+
+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"
+
+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.4.0"
+ resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+
+invariant@^2.2.0:
+ 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.5, 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.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==
+
+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-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+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-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"
+ 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"
+ integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
+
+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-color-stop@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
+ integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
+ dependencies:
+ css-color-names "^0.0.4"
+ hex-color-regex "^1.1.0"
+ hsl-regex "^1.0.0"
+ hsla-regex "^1.0.0"
+ rgb-regex "^1.0.1"
+ rgba-regex "^1.0.0"
+
+is-core-module@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946"
+ integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==
+ dependencies:
+ has "^1.0.3"
+
+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.1.1"
+ resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
+ integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==
+
+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-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@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.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:
+ 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-negative-zero@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
+ integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
+
+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-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-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+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-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"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+is-plain-object@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
+ integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
+
+is-regex@^1.0.4, is-regex@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
+ integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
+ dependencies:
+ has-symbols "^1.0.1"
+
+is-resolvable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+ integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
+
+is-ssh@^1.3.0:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b"
+ integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ==
+ dependencies:
+ protocols "^1.1.0"
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.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==
+
+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-svg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
+ integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
+ 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-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"
+ integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==
+
+is-windows@^1.0.0, 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@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=
+
+jest-worker@^26.3.0, jest-worker@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+ integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+ dependencies:
+ "@types/node" "*"
+ 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"
+ integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
+
+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, js-yaml@^3.9.1:
+ 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==
+
+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"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+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@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, 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, json3@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
+ integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
+
+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"
+
+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"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonfile@~1.1.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz#da4fd6ad77f1a255203ea63c7bc32dc31ef64433"
+ integrity sha1-2k/WrXfxolUgPqY8e8Mtwx72RDM=
+
+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"
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz#642f1d7b88aa6d7eb9d8f2210e166478444fa891"
+ integrity sha512-d4/UOjg+mxAWxCiF0c5UTSwyqbchkbqCvK87aBovhnh8GtysTjWmgC63tY0cJx/HzGgm9qnA147jVBdpOiQ2RA==
+ dependencies:
+ 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"
+ integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
+
+kind-of@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5"
+ integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=
+ dependencies:
+ is-buffer "^1.0.2"
+
+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, kind-of@^6.0.3:
+ 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==
+
+klona@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
+ integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
+
+language-subtag-registry@~0.3.2:
+ version "0.3.21"
+ resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
+ integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==
+
+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"
+
+lazy-cache@^0.2.3:
+ version "0.2.7"
+ resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65"
+ integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+ integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
+
+lerna@^3.22.1:
+ version "3.22.1"
+ resolved "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz#82027ac3da9c627fd8bf02ccfeff806a98e65b62"
+ integrity sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==
+ dependencies:
+ "@lerna/add" "3.21.0"
+ "@lerna/bootstrap" "3.21.0"
+ "@lerna/changed" "3.21.0"
+ "@lerna/clean" "3.21.0"
+ "@lerna/cli" "3.18.5"
+ "@lerna/create" "3.22.0"
+ "@lerna/diff" "3.21.0"
+ "@lerna/exec" "3.21.0"
+ "@lerna/import" "3.22.0"
+ "@lerna/info" "3.21.0"
+ "@lerna/init" "3.21.0"
+ "@lerna/link" "3.21.0"
+ "@lerna/list" "3.21.0"
+ "@lerna/publish" "3.22.1"
+ "@lerna/run" "3.21.0"
+ "@lerna/version" "3.22.1"
+ import-local "^2.0.0"
+ npmlog "^4.1.2"
+
+less-loader@^7.2.1:
+ version "7.2.1"
+ resolved "https://registry.npmjs.org/less-loader/-/less-loader-7.2.1.tgz#a923df8567256751b0ab4e0c3eecff10fd0a5876"
+ integrity sha512-4v83WZ7KGbluOWPgk3iNjreAaJDNStfmmdfJbQIib3Jlc8mejV3w6A9xU+EkaivjBVqwQEK0y8cFthyNeGnrTQ==
+ dependencies:
+ klona "^2.0.4"
+ loader-utils "^2.0.0"
+ schema-utils "^3.0.0"
+
+less@^3.0.2:
+ version "3.12.2"
+ resolved "https://registry.npmjs.org/less/-/less-3.12.2.tgz#157e6dd32a68869df8859314ad38e70211af3ab4"
+ integrity sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==
+ dependencies:
+ 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"
+ native-request "^1.0.5"
+ source-map "~0.6.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"
+
+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"
+
+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=
+
+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"
+ 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"
+
+load-json-file@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3"
+ integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==
+ dependencies:
+ graceful-fs "^4.1.15"
+ parse-json "^4.0.0"
+ pify "^4.0.1"
+ strip-bom "^3.0.0"
+ type-fest "^0.3.0"
+
+loader-runner@^4.2.0:
+ version "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:
+ 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"
+
+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@^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"
+ 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"
+
+locate-path@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ dependencies:
+ p-locate "^5.0.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.clonedeep@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+ integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
+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.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+
+lodash.template@^4.0.2, lodash.template@^4.5.0:
+ 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, 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.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==
+
+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"
+
+loglevel@^1.6.8:
+ version "1.7.0"
+ 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.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"
+
+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=
+
+lower-case@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+ integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+ dependencies:
+ tslib "^2.0.3"
+
+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"
+ 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"
+
+macos-release@^2.2.0:
+ version "2.4.1"
+ resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac"
+ integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==
+
+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==
+ dependencies:
+ pify "^3.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"
+
+make-fetch-happen@^5.0.0:
+ version "5.0.2"
+ resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd"
+ integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==
+ dependencies:
+ agentkeepalive "^3.4.1"
+ cacache "^12.0.0"
+ http-cache-semantics "^3.8.1"
+ http-proxy-agent "^2.1.0"
+ https-proxy-agent "^2.2.3"
+ lru-cache "^5.1.1"
+ mississippi "^3.0.0"
+ node-fetch-npm "^2.0.2"
+ promise-retry "^1.1.1"
+ socks-proxy-agent "^4.0.0"
+ ssri "^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"
+ 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=
+
+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"
+
+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"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
+mdn-data@2.0.4:
+ version "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"
+ 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"
+
+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@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.npmjs.org/meow/-/meow-8.0.0.tgz#1aa10ee61046719e334ffdc038bb5069250ec99a"
+ integrity sha512-nbsTRz2fwniJBFgUkcdISq8y/q9n9VbiHYbfwklFh5V4V2uAcxtKQkDc0yCLPM/kP0d+inZBewn3zJqewHE7kg==
+ dependencies:
+ "@types/minimist" "^1.2.0"
+ camelcase-keys "^6.2.2"
+ decamelize-keys "^1.1.0"
+ hard-rejection "^2.1.0"
+ minimist-options "4.1.0"
+ normalize-package-data "^3.0.0"
+ read-pkg-up "^7.0.1"
+ redent "^3.0.0"
+ trim-newlines "^3.0.0"
+ type-fest "^0.18.0"
+ yargs-parser "^20.2.3"
+
+merge-deep@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2"
+ integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==
+ dependencies:
+ arr-union "^3.1.0"
+ clone-deep "^0.2.4"
+ kind-of "^3.0.2"
+
+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=
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.2.3:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+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, 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==
+ 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"
+
+mime-db@1.44.0:
+ 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-db@1.45.0, "mime-db@>= 1.43.0 < 2":
+ version "1.45.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
+ integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
+
+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-types@^2.1.27:
+ version "2.1.28"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
+ integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
+ dependencies:
+ mime-db "1.45.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.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"
+ 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-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+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"
+
+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"
+ integrity sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==
+ dependencies:
+ loader-utils "^1.1.0"
+ schema-utils "^1.0.0"
+ webpack-sources "^1.1.0"
+
+minimalistic-assert@^1.0.0:
+ 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==
+
+minimatch@^3.0.2, 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@4.1.0:
+ 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-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@^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==
+
+minipass-collect@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+ integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-flush@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+ integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-pipeline@^1.2.2:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
+ integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
+ version "2.9.0"
+ resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
+ integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
+ dependencies:
+ safe-buffer "^5.1.2"
+ yallist "^3.0.0"
+
+minipass@^3.0.0, minipass@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
+ integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==
+ dependencies:
+ yallist "^4.0.0"
+
+minizlib@^1.2.1:
+ version "1.3.3"
+ resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
+ integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
+ dependencies:
+ minipass "^2.9.0"
+
+minizlib@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
+ integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+ dependencies:
+ minipass "^3.0.0"
+ yallist "^4.0.0"
+
+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"
+
+mixin-object@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
+ integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=
+ dependencies:
+ for-in "^0.1.3"
+ is-extendable "^0.1.1"
+
+mkdirp-classic@^0.5.2:
+ version "0.5.3"
+ resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+ integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
+
+mkdirp-promise@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1"
+ integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=
+ dependencies:
+ mkdirp "*"
+
+mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+mkdirp@0.3.x:
+ version "0.3.5"
+ 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.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==
+ 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"
+ 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.0.0, 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"
+
+multimatch@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b"
+ integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==
+ dependencies:
+ array-differ "^2.0.3"
+ array-union "^1.0.2"
+ arrify "^1.0.1"
+ minimatch "^3.0.4"
+
+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=
+
+mute-stream@0.0.8, 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==
+
+mz@^2.5.0:
+ version "2.7.0"
+ resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+ integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
+ dependencies:
+ any-promise "^1.0.0"
+ object-assign "^4.0.1"
+ thenify-all "^1.0.0"
+
+nan@^2.12.1:
+ version "2.14.2"
+ resolved "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
+ integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
+
+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"
+
+native-request@^1.0.5:
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb"
+ integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==
+
+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=
+
+ncp@~0.4.2:
+ version "0.4.2"
+ resolved "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574"
+ integrity sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=
+
+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.6.0, neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+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"
+
+no-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+ integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+ dependencies:
+ lower-case "^2.0.2"
+ tslib "^2.0.3"
+
+node-fetch-npm@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4"
+ integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==
+ dependencies:
+ encoding "^0.1.11"
+ json-parse-better-errors "^1.0.0"
+ safe-buffer "^5.1.1"
+
+node-fetch@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5"
+ integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=
+
+node-fetch@^2.5.0, node-fetch@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
+ integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+
+node-forge@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
+ integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
+
+node-fs-extra@^0.8.2:
+ version "0.8.2"
+ resolved "https://registry.npmjs.org/node-fs-extra/-/node-fs-extra-0.8.2.tgz#09fb2b60d30f7d703e361ecb626a91404f17097a"
+ integrity sha1-CfsrYNMPfXA+Nh7LYmqRQE8XCXo=
+ dependencies:
+ jsonfile "~1.1.0"
+ mkdirp "0.3.x"
+ ncp "~0.4.2"
+ rimraf "~2.2.0"
+
+node-gyp@^5.0.2:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"
+ integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==
+ dependencies:
+ env-paths "^2.2.0"
+ glob "^7.1.4"
+ graceful-fs "^4.2.2"
+ mkdirp "^0.5.1"
+ nopt "^4.0.1"
+ npmlog "^4.1.2"
+ request "^2.88.0"
+ rimraf "^2.6.3"
+ semver "^5.7.1"
+ tar "^4.4.12"
+ which "^1.3.1"
+
+node-releases@^1.1.65:
+ version "1.1.66"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz#609bd0dc069381015cd982300bae51ab4f1b1814"
+ integrity sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==
+
+node-releases@^1.1.69:
+ version "1.1.69"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6"
+ integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==
+
+noop2@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b"
+ integrity sha1-S2NgFemIK1R4PAK0EvaZ2MXNCls=
+
+nopt@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
+ integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
+ dependencies:
+ abbrev "1"
+ osenv "^0.1.4"
+
+normalize-package-data@^2.0.0, 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.4.0, 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-package-data@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a"
+ integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==
+ dependencies:
+ hosted-git-info "^3.0.6"
+ resolve "^1.17.0"
+ semver "^7.3.2"
+ 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"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+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"
+
+normalize-url@^3.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==
+
+npm-bundled@^1.0.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
+ integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
+ dependencies:
+ npm-normalize-package-bin "^1.0.1"
+
+npm-lifecycle@^3.1.2:
+ version "3.1.5"
+ resolved "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309"
+ integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==
+ dependencies:
+ byline "^5.0.0"
+ graceful-fs "^4.1.15"
+ node-gyp "^5.0.2"
+ resolve-from "^4.0.0"
+ slide "^1.1.6"
+ uid-number "0.0.6"
+ umask "^1.1.0"
+ which "^1.3.1"
+
+npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
+ integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
+
+"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0:
+ version "6.1.1"
+ resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7"
+ integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==
+ dependencies:
+ hosted-git-info "^2.7.1"
+ osenv "^0.1.5"
+ semver "^5.6.0"
+ validate-npm-package-name "^3.0.0"
+
+npm-packlist@^1.4.4:
+ version "1.4.8"
+ resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
+ integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
+ dependencies:
+ ignore-walk "^3.0.1"
+ npm-bundled "^1.0.1"
+ npm-normalize-package-bin "^1.0.1"
+
+npm-pick-manifest@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7"
+ integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==
+ dependencies:
+ figgy-pudding "^3.5.1"
+ npm-package-arg "^6.0.0"
+ semver "^5.4.1"
+
+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"
+
+npmlog@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+ dependencies:
+ are-we-there-yet "~1.1.2"
+ console-control-strings "~1.1.0"
+ gauge "~2.7.3"
+ set-blocking "~2.0.0"
+
+nth-check@^1.0.2, 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=
+
+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"
+ 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.0.3"
+ resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz#d12db044e03cd2ca3d77c0570d87225b02e1e6ea"
+ integrity sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==
+
+object-inspect@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
+ integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
+
+object-is@^1.0.1:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81"
+ integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.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.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==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
+
+object.entries@^1.1.2:
+ 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"
+ integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+
+object.getownpropertydescriptors@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544"
+ integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.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"
+
+object.values@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731"
+ integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+ has "^1.0.3"
+
+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"
+ 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"
+
+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"
+
+onetime@^5.1.0:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+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.3.0"
+ resolved "https://registry.npmjs.org/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69"
+ integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==
+ 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"
+
+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"
+
+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"
+
+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==
+ dependencies:
+ chalk "^2.4.2"
+ cli-cursor "^2.1.0"
+ cli-spinners "^2.0.0"
+ log-symbols "^2.2.0"
+ strip-ansi "^5.2.0"
+ wcwidth "^1.0.1"
+
+original@^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-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+ integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
+
+os-name@^3.1.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.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=
+
+osenv@^0.1.4, osenv@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+ integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.0"
+
+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"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-limit@^3.0.2, p-limit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.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"
+ 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-locate@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ dependencies:
+ p-limit "^3.0.2"
+
+p-map-series@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca"
+ integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=
+ dependencies:
+ p-reduce "^1.0.0"
+
+p-map@^2.0.0, p-map@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+ integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
+p-pipe@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9"
+ integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k=
+
+p-queue@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346"
+ integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==
+ dependencies:
+ eventemitter3 "^3.1.0"
+
+p-reduce@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
+ integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=
+
+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@^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==
+
+p-waterfall@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00"
+ integrity sha1-ftlLPOszMngjU69qrhGqn8I1uwA=
+ dependencies:
+ p-reduce "^1.0.0"
+
+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.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"
+ integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
+ dependencies:
+ dot-case "^3.0.4"
+ tslib "^2.0.3"
+
+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-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-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"
+ 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"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+parse-json@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
+ integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+parse-path@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa"
+ integrity sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w==
+ dependencies:
+ is-ssh "^1.3.0"
+ protocols "^1.4.0"
+
+parse-url@^5.0.0:
+ version "5.0.2"
+ resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59"
+ integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA==
+ dependencies:
+ is-ssh "^1.3.0"
+ normalize-url "^3.3.0"
+ parse-path "^4.0.0"
+ protocols "^1.4.0"
+
+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"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+pascal-case@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
+ integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+
+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@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
+ integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+
+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@^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"
+ 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-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"
+
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+ integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+
+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=
+
+pify@^2.0.0, pify@^2.3.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@^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"
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
+ dependencies:
+ find-up "^3.0.0"
+
+pkg-dir@^4.1.0, pkg-dir@^4.2.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"
+
+pkg-dir@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
+ integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
+ dependencies:
+ find-up "^5.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==
+
+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==
+ dependencies:
+ async "^2.6.2"
+ debug "^3.1.1"
+ mkdirp "^0.5.5"
+
+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-calc@^7.0.1:
+ version "7.0.5"
+ resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e"
+ integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==
+ dependencies:
+ postcss "^7.0.27"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.0.2"
+
+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-colormin@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
+ integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
+ dependencies:
+ browserslist "^4.0.0"
+ color "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+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-convert-values@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
+ integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+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-comments@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
+ integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
+ dependencies:
+ postcss "^7.0.0"
+
+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-duplicates@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
+ integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
+ dependencies:
+ postcss "^7.0.0"
+
+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-empty@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
+ integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
+ dependencies:
+ postcss "^7.0.0"
+
+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-overridden@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
+ integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
+ dependencies:
+ postcss "^7.0.0"
+
+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.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 "^6.0.1"
+
+postcss-load-config@^2.0.0:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a"
+ integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==
+ 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-longhand@^4.0.11:
+ version "4.0.11"
+ resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
+ integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
+ dependencies:
+ css-color-names "0.0.4"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ stylehacks "^4.0.0"
+
+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-merge-rules@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
+ integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ cssnano-util-same-parent "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+ 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-font-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
+ integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+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-gradients@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
+ integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ is-color-stop "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.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-params@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
+ integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ browserslist "^4.0.0"
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ 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-minify-selectors@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
+ integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.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-charset@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
+ integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
+ dependencies:
+ postcss "^7.0.0"
+
+postcss-normalize-display-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
+ integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-positions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
+ integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-repeat-style@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
+ integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-string@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
+ integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
+ dependencies:
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-timing-functions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
+ integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-unicode@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
+ integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+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-normalize-url@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
+ integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+ dependencies:
+ is-absolute-url "^2.0.0"
+ normalize-url "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-whitespace@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
+ integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+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-ordered-values@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
+ integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+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-initial@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
+ integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+
+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-reduce-transforms@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
+ integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+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-selector-parser@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
+ integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
+ dependencies:
+ dot-prop "^5.2.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+postcss-selector-parser@^6.0.2:
+ version "6.0.4"
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
+ integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
+ dependencies:
+ cssesc "^3.0.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+ util-deprecate "^1.0.2"
+
+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-svgo@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
+ integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==
+ dependencies:
+ is-svg "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ svgo "^1.0.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-unique-selectors@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
+ integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ postcss "^7.0.0"
+ uniqs "^2.0.0"
+
+postcss-value-parser@^3.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-value-parser@^4.0.2:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
+ integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
+
+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"
+
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27:
+ version "7.0.35"
+ resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
+ integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
+ dependencies:
+ chalk "^2.4.2"
+ source-map "^0.6.1"
+ supports-color "^6.1.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==
+
+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=
+
+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.1.1:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6"
+ integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==
+ dependencies:
+ lodash "^4.17.20"
+ renderkid "^2.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==
+
+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"
+ 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, progress@^2.0.1:
+ 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-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"
+ integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=
+ dependencies:
+ err-code "^1.0.0"
+ retry "^0.10.0"
+
+promzard@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
+ integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=
+ dependencies:
+ read "1"
+
+prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.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"
+
+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"
+ integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
+
+protocols@^1.1.0, protocols@^1.4.0:
+ version "1.4.8"
+ resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8"
+ integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==
+
+protoduck@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f"
+ integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==
+ dependencies:
+ genfun "^5.0.0"
+
+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"
+
+proxy-from-env@^1.0.0, proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
+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=
+
+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"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
+
+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@^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==
+
+puppeteer-extra-plugin-stealth@^2.6.1:
+ version "2.6.5"
+ resolved "https://registry.npmjs.org/puppeteer-extra-plugin-stealth/-/puppeteer-extra-plugin-stealth-2.6.5.tgz#3bc57f32eb04da7fac7f75a6301ff9a904366935"
+ integrity sha512-AMR5lflH51kZART1hSuag/pFCgSoy8U/t23rH6deXN6CirS6S4HzVF72KltGxYnlH9oHRo7ZzoG/aRTsUN8H8A==
+ dependencies:
+ debug "^4.1.1"
+ puppeteer-extra-plugin "^3.1.7"
+
+puppeteer-extra-plugin@^3.1.7:
+ version "3.1.7"
+ resolved "https://registry.npmjs.org/puppeteer-extra-plugin/-/puppeteer-extra-plugin-3.1.7.tgz#44bc6321e72d468a6ef3f44a6625d607805c5dda"
+ integrity sha512-In3o89X06Q4w1wt0RsAvvdRIp7BzWttVHh24srzlfcBvsGq+zCqhPuwbOYbxnwemtNLaiD/hcYGLvNMEqeUo/Q==
+ dependencies:
+ "@types/debug" "^4.1.0"
+ debug "^4.1.1"
+ merge-deep "^3.0.1"
+
+puppeteer-extra@^3.1.15:
+ version "3.1.15"
+ resolved "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.1.15.tgz#a2ec4f5fc0bed837cc983a25b7d18c37161233cb"
+ integrity sha512-TFKcluoNSYCT3xmZjDcqOkBuxZePbwvaL5mrW5Gvp5c9QsJEei5TYixoenMQaB3QZuRW0Aura4yyjVrJDNlWFA==
+ dependencies:
+ "@types/debug" "^4.1.0"
+ "@types/puppeteer" "^2.0.0"
+ 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"
+ integrity sha512-8u6r9tFm3gtMylU4uCry1W/CeAA8uczKMONvGvivkTsGqKA7iB7DWO2CBFYlB9GY6/IEoq9vkI5slJWzUBkwNw==
+ dependencies:
+ debug "^4.1.0"
+ devtools-protocol "0.0.809251"
+ extract-zip "^2.0.0"
+ https-proxy-agent "^4.0.0"
+ node-fetch "^2.6.1"
+ pkg-dir "^4.2.0"
+ progress "^2.0.1"
+ proxy-from-env "^1.0.0"
+ rimraf "^3.0.2"
+ tar-fs "^2.0.0"
+ unbzip2-stream "^1.3.3"
+ ws "^7.2.3"
+
+q@^1.1.2, q@^1.5.1:
+ 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@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.2.0"
+ resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
+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.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"
+
+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"
+
+react-dom@^18.0.0:
+ version "18.0.0"
+ resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz#26b88534f8f1dbb80853e1eabe752f24100d8023"
+ integrity sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==
+ dependencies:
+ loose-envify "^1.1.0"
+ scheduler "^0.21.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-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"
+ integrity sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA==
+ 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@^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:
+ history "^5.2.0"
+ react-router "6.3.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"
+ 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"
+ integrity sha512-Pa5kvqRfX85QUCK1Jv0rxyeElbC3aNpCP5hV0LoJpU/Y6kydf0t4kRriQ6ZYA4kxWwAYk/cH51T4/sPzV9mCgQ==
+ dependencies:
+ prop-types "^15.6.2"
+
+react@^18.0.0:
+ version "18.0.0"
+ resolved "https://registry.npmjs.org/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96"
+ integrity sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==
+ dependencies:
+ loose-envify "^1.1.0"
+
+read-cmd-shim@^1.0.1:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16"
+ integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA==
+ dependencies:
+ graceful-fs "^4.1.2"
+
+"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a"
+ integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==
+ dependencies:
+ glob "^7.1.1"
+ json-parse-even-better-errors "^2.3.0"
+ normalize-package-data "^2.0.0"
+ npm-normalize-package-bin "^1.0.0"
+
+read-package-tree@^5.1.6:
+ version "5.3.1"
+ resolved "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636"
+ integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==
+ dependencies:
+ read-package-json "^2.0.0"
+ readdir-scoped-modules "^1.0.0"
+ util-promisify "^2.1.0"
+
+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=
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
+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=
+ dependencies:
+ load-json-file "^4.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^3.0.0"
+
+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==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
+read@1, read@~1.0.1:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
+ integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=
+ dependencies:
+ mute-stream "~0.0.4"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, 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@2 || 3", readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.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"
+
+readdir-scoped-modules@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
+ integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==
+ dependencies:
+ debuglog "^1.0.1"
+ dezalgo "^1.0.0"
+ graceful-fs "^4.1.2"
+ once "^1.3.0"
+
+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"
+
+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"
+ 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"
+
+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==
+
+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, regexp.prototype.flags@^1.3.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@^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==
+
+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"
+ 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-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"
+ 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"
+ 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"
+
+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"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+renderkid@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz#d325e532afb28d3f8796ffee306be8ffd6fc864c"
+ integrity sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==
+ dependencies:
+ css-select "^1.1.0"
+ dom-converter "^0.2"
+ htmlparser2 "^3.3.0"
+ lodash "^4.17.20"
+ strip-ansi "^3.0.0"
+
+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.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=
+
+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"
+ integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
+
+request@^2.88.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-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"
+ 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@^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-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.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==
+ dependencies:
+ is-core-module "^2.0.0"
+ path-parse "^1.0.6"
+
+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"
+
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.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.10.0:
+ version "0.10.1"
+ resolved "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
+ integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=
+
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
+
+rgb-regex@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
+ integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
+
+rgba-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
+ integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
+
+rimraf@2.6.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==
+ dependencies:
+ glob "^7.1.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==
+ 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"
+
+rimraf@~2.2.0:
+ version "2.2.8"
+ 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:
+ 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.10"
+ resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
+ integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
+
+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"
+
+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, rxjs@^6.6.0:
+ version "6.6.3"
+ resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552"
+ integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==
+ 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"
+ 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.1.2 < 3.0.0", 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, sax@~1.2.4:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+scheduler@^0.21.0:
+ version "0.21.0"
+ resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820"
+ integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
+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.1"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
+ integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
+ dependencies:
+ "@types/json-schema" "^7.0.5"
+ ajv "^6.12.4"
+ ajv-keywords "^3.5.2"
+
+schema-utils@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef"
+ integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==
+ dependencies:
+ "@types/json-schema" "^7.0.6"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
+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.8"
+ resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30"
+ integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==
+ dependencies:
+ node-forge "^0.10.0"
+
+"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
+ 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.2.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, semver@^7.3.2:
+ version "7.3.2"
+ resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
+ integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
+
+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@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
+ integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
+ 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, 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"
+
+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==
+
+shallow-clone@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060"
+ integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=
+ dependencies:
+ is-extendable "^0.1.1"
+ kind-of "^2.0.1"
+ lazy-cache "^0.2.3"
+ mixin-object "^2.0.1"
+
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
+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==
+
+shelljs@^0.8.3:
+ version "0.8.4"
+ resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
+ integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
+side-channel@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3"
+ integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==
+ dependencies:
+ es-abstract "^1.18.0-next.0"
+ object-inspect "^1.8.0"
+
+signal-exit@^3.0.0, signal-exit@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
+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@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==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+
+slice-ansi@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+ integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+ dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
+ is-fullwidth-code-point "^2.0.0"
+
+slide@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+ integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
+
+smart-buffer@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
+ integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==
+
+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:
+ 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-client@^1.1.5:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add"
+ integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==
+ dependencies:
+ debug "^3.2.6"
+ eventsource "^1.0.7"
+ faye-websocket "^0.11.3"
+ inherits "^2.0.4"
+ json3 "^3.3.3"
+ url-parse "^1.4.7"
+
+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"
+
+socks-proxy-agent@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386"
+ integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==
+ dependencies:
+ agent-base "~4.2.1"
+ socks "~2.3.2"
+
+socks@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3"
+ integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==
+ dependencies:
+ ip "1.1.5"
+ smart-buffer "^4.1.0"
+
+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"
+
+sort-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
+ integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+source-list-map@^2.0.0, source-list-map@^2.0.1:
+ 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, source-map-support@~0.5.19:
+ 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, source-map@~0.7.2:
+ version "0.7.3"
+ 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"
+ 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.6"
+ resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce"
+ integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==
+
+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"
+
+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"
+ 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.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"
+
+ssri@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808"
+ integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==
+ dependencies:
+ minipass "^3.1.1"
+
+stable@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+ integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+
+stackframe@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303"
+ integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==
+
+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-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-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@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-3.0.1.tgz#a899de524a4dfaa296e4be73f1667de150bed8d2"
+ integrity sha512-G6UD9HX1XaKXnWpKgNHPVc/pYYLtP8+UWfORY5n3GTLSUNUo2hU2ABBnC9B3hg7ATWVSIGTisiP8zGq1DlvTbg==
+ dependencies:
+ loader-utils "^2.0.0"
+ schema-utils "^3.0.0"
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+ 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:
+ 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.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.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46"
+ integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
+string.prototype.trimstart@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7"
+ integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.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-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@^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-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-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=
+
+strong-log-transformer@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10"
+ integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==
+ dependencies:
+ duplexer "^0.1.1"
+ minimist "^1.2.0"
+ through "^2.3.4"
+
+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"
+
+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"
+ integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^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"
+ 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.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"
+
+svgo@^1.0.0:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
+ integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+ dependencies:
+ chalk "^2.4.1"
+ coa "^2.0.2"
+ css-select "^2.0.0"
+ css-select-base-adapter "^0.1.1"
+ css-tree "1.0.0-alpha.37"
+ csso "^4.0.2"
+ js-yaml "^3.13.1"
+ mkdirp "~0.5.1"
+ object.values "^1.1.0"
+ sax "~1.2.4"
+ stable "^0.1.8"
+ unquote "~1.1.1"
+ util.promisify "~1.0.0"
+
+table@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
+ integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==
+ 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"
+
+table@^5.2.3:
+ version "5.4.6"
+ resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
+ integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
+ dependencies:
+ ajv "^6.10.2"
+ lodash "^4.17.14"
+ slice-ansi "^2.1.0"
+ string-width "^3.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==
+
+tapable@^2.1.1, tapable@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b"
+ integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==
+
+tar-fs@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+ integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
+ dependencies:
+ chownr "^1.1.1"
+ mkdirp-classic "^0.5.2"
+ pump "^3.0.0"
+ tar-stream "^2.1.4"
+
+tar-stream@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa"
+ integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==
+ dependencies:
+ bl "^4.0.3"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
+tar@^4.4.10, tar@^4.4.12, tar@^4.4.8:
+ version "4.4.13"
+ resolved "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
+ integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
+ dependencies:
+ chownr "^1.1.1"
+ fs-minipass "^1.2.5"
+ minipass "^2.8.6"
+ minizlib "^1.2.1"
+ mkdirp "^0.5.0"
+ safe-buffer "^5.1.2"
+ yallist "^3.0.3"
+
+tar@^6.0.2:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83"
+ integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^3.0.0"
+ minizlib "^2.1.1"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
+temp-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
+ integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
+
+temp-write@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492"
+ integrity sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI=
+ dependencies:
+ graceful-fs "^4.1.2"
+ is-stream "^1.1.0"
+ make-dir "^1.0.0"
+ pify "^3.0.0"
+ temp-dir "^1.0.0"
+ uuid "^3.0.1"
+
+terser-webpack-plugin@^5.0.3:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673"
+ integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==
+ dependencies:
+ jest-worker "^26.6.2"
+ p-limit "^3.1.0"
+ schema-utils "^3.0.0"
+ serialize-javascript "^5.0.1"
+ source-map "^0.6.1"
+ terser "^5.5.1"
+
+terser@^4.6.3:
+ version "4.8.0"
+ resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
+ integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.6.1"
+ source-map-support "~0.5.12"
+
+terser@^5.5.1:
+ version "5.5.1"
+ resolved "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289"
+ integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.7.2"
+ source-map-support "~0.5.19"
+
+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:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+thenify-all@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=
+ dependencies:
+ thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+ version "3.3.1"
+ resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
+ integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
+ dependencies:
+ any-promise "^1.0.0"
+
+through2@^2.0.0, through2@^2.0.2, 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"
+
+through2@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4"
+ integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "2 || 3"
+
+through2@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764"
+ integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
+ dependencies:
+ readable-stream "3"
+
+through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8:
+ 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==
+
+timsort@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+ integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
+
+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-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@^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==
+
+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"
+
+tr46@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
+ dependencies:
+ punycode "^2.1.0"
+
+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"
+ 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.4"
+ resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0"
+ integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==
+
+trim@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
+ 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==
+
+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.14.1"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
+ integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
+
+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-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=
+ dependencies:
+ prelude-ls "~1.1.2"
+
+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.18.0:
+ version "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.3.0:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"
+ integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==
+
+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"
+ 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.1.4:
+ version "3.11.5"
+ 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"
+ integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=
+
+umask@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d"
+ integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=
+
+unbzip2-stream@^1.3.3:
+ version "1.4.3"
+ resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+ integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
+ dependencies:
+ buffer "^5.2.1"
+ through "^2.3.8"
+
+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"
+
+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"
+ 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"
+
+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"
+ 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-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-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"
+ 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"
+ integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==
+ 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"
+ 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-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"
+ integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==
+ dependencies:
+ unist-util-visit-parents "^2.0.0"
+
+universal-user-agent@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557"
+ integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==
+ dependencies:
+ os-name "^3.1.0"
+
+universal-user-agent@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
+ integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
+
+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=
+
+unquote@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+ integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
+
+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, upath@^1.2.0:
+ 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.4.0"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
+ integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
+ 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, url-parse@^1.4.7:
+ 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.2, 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@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53"
+ integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=
+ dependencies:
+ object.getownpropertydescriptors "^2.0.3"
+
+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.promisify@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.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.0.1, 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==
+
+validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3:
+ 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"
+
+validate-npm-package-name@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
+ integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34=
+ dependencies:
+ builtins "^1.0.3"
+
+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-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"
+ integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==
+ 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"
+ 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"
+
+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"
+
+watchpack@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.1.0.tgz#e63194736bf3aa22026f7b191cd57907b0f9f696"
+ integrity sha512-UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+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"
+
+wcwidth@^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"
+
+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"
+ integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+
+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.3:
+ 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-sources@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac"
+ integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==
+ dependencies:
+ 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"
+ integrity sha512-HiTXBGLFQiRecP5Fwrh21aaxlEUqQdDeUaninKVKX0Dtqaf+WjKCsNcv+UVftfYXrY0bnRQHnouw1x+CPqQKFQ==
+ dependencies:
+ "@types/eslint-scope" "^3.7.0"
+ "@types/estree" "^0.0.45"
+ "@webassemblyjs/ast" "1.9.1"
+ "@webassemblyjs/helper-module-context" "1.9.1"
+ "@webassemblyjs/wasm-edit" "1.9.1"
+ "@webassemblyjs/wasm-parser" "1.9.1"
+ acorn "^8.0.4"
+ browserslist "^4.14.5"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^5.3.1"
+ eslint-scope "^5.1.1"
+ events "^3.2.0"
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.2.4"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^4.2.0"
+ mime-types "^2.1.27"
+ neo-async "^2.6.2"
+ pkg-dir "^5.0.0"
+ schema-utils "^3.0.0"
+ tapable "^2.1.1"
+ terser-webpack-plugin "^5.0.3"
+ watchpack "^2.0.0"
+ webpack-sources "^2.1.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.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
+ integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
+
+whatwg-fetch@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
+ integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==
+
+whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
+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, which@^1.3.1:
+ 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"
+
+wide-align@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+ dependencies:
+ string-width "^1.0.2 || 2"
+
+windows-release@^3.1.0:
+ version "3.3.3"
+ resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999"
+ integrity sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==
+ dependencies:
+ execa "^1.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=
+
+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-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2:
+ 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-json-file@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f"
+ integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=
+ dependencies:
+ detect-indent "^5.0.0"
+ graceful-fs "^4.1.2"
+ make-dir "^1.0.0"
+ pify "^3.0.0"
+ sort-keys "^2.0.0"
+ write-file-atomic "^2.0.0"
+
+write-json-file@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a"
+ integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==
+ dependencies:
+ detect-indent "^5.0.0"
+ graceful-fs "^4.1.15"
+ make-dir "^2.1.0"
+ pify "^4.0.1"
+ sort-keys "^2.0.0"
+ write-file-atomic "^2.4.2"
+
+write-pkg@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21"
+ integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==
+ dependencies:
+ sort-keys "^2.0.0"
+ write-json-file "^2.2.0"
+
+write@1.0.3, 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"
+
+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"
+
+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==
+ dependencies:
+ async-limiter "~1.0.0"
+
+ws@^7.2.3:
+ version "7.4.0"
+ resolved "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7"
+ integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==
+
+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@^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.0, yallist@^3.0.2, yallist@^3.0.3:
+ 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-parser@^15.0.1:
+ version "15.0.1"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3"
+ integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs-parser@^20.2.3:
+ version "20.2.4"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
+ integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+
+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"
+
+yargs@^14.2.2:
+ version "14.2.3"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"
+ integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==
+ dependencies:
+ cliui "^5.0.0"
+ decamelize "^1.2.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 "^15.0.1"
+
+yauzl@^2.10.0:
+ version "2.10.0"
+ resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
+ dependencies:
+ buffer-crc32 "~0.2.3"
+ fd-slicer "~1.1.0"
+
+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==